タグ

ブックマーク / thinca.hatenablog.com (19)

  • VimConf 2014 を開催しました - 永遠に未完成

    去る 2014年11月8日、VimConf 2014 を開催しました。 私は、主催、というわけでもないのだけど、会開催スタッフの中心人物的な感じで関わらせていただきました。 VimConf は当に多くの人の協力で成り立っています。私は今回、あちこちの人に色々お願いして回るのがメインで、みなさんの協力があって初めて開催することができました。 ボランティアスタッフとして手を挙げ、手伝ってくれた皆さん、発表者の皆さん、そして参加してくれた皆さん。当にありがとうございました! とまあ、固い話はこれくらいにして、以下、いつも通り雑に感想書いていくよ! Identity of the Vim - @kaoriya 資料: http://koron.github.io/vimconf-2014-koron/ Vim を使うなら色々やろう!と言う話。さすが kaoriya さん、いい話すぎて、最初か

    VimConf 2014 を開催しました - 永遠に未完成
  • カラースキームを作ってみよう - 永遠に未完成

    Vim Advent Calendar 2012 の 131 日目の記事です。 毎日のように Vim を使っているみなさんは、恐らくお気に入りのカラースキームがあったりすると思います。中には一部が気にわなくて改造してみたり、更にはすでに自作している方もいるかもしれません。 今回は、「カラースキーム作ってみたいけど作り方がよくわからない><」「改造して使ってるけど実はよくわかってないんだよね…」といった方を対象に、カラースキームの作り方について簡単に説明してみようと思います。長くならないように、適時端折っていこうと思います。 始めに ぶっちゃけてしまうと、最初は既存のカラースキームを改造するところから入るのが楽です。真似して書くとだいたいそれっぽくなるものです。 この記事では 0 から作ることを想定して解説していきますが、チュートリアル的な内容と言うより知識的な解説になっているので、改造だ

  • diff を折り畳む - 永遠に未完成

    あるとき突然 diff 形式のファイルを折り畳みたくなったんだけど、diff なんて昔からあるしすでにあるだろと思って探したのだけどどうにも見当らなかったので適当にでっち上げた。Unified形式のみ対応。Unifiedの中でも微妙に形式違ったりするのでうまくいかないことがあるかも。 ftplugin/diff_fold.vim に置いて使う。 せっかく作ったので余裕があったらもっと色んな形式のも折り畳めるようにしたいなぁ。diff の形式いろいろありすぎていまいち把握しきれてないんだけど。 あと、すでにあるよって情報があれば教えていただけると悲しい嬉しいです。

    diff を折り畳む - 永遠に未完成
  • Windows で Vim をソースコードからビルドする - 永遠に未完成

    7.3 の開発も始まり今もアツい Vim。先日スナップショット版のWindows用のインストーラも公開されたが、それ以降の最新の機能を試したい場合や好みの機能を入れるには、自分でソースコードからビルドする必要がある。 ただソースコードからのビルドは中々にハードルが高いので、自分へのメモの意味も込めてちょっと手順をまとめてみることにした。 開発環境を用意する ソースコードをビルドするためには、まず開発環境が必要です。 Visual C++ か MinGW をインストールしておきます。インストール方法についてはここでは省略します。 ソースコードを取得する Mercurial をインストールする 現在 Vim の最新版は Mercurial リポジトリで管理されています。なので、まずは Mercurial をインストールする必要があります。 Mercurial SCM インストールは省略。Win

    Windows で Vim をソースコードからビルドする - 永遠に未完成
  • sugamo.vim に行ってきた - 永遠に未完成

    Vim の勉強会ということで、お邪魔してきた。 今回は特に発表があるわけではなくみんなで集まって作業したり普段のVimの使い方について話したり疑問点をその場で聞いてみたりな感じで、こういうゆるい感じは私は結構好き。 序盤 @sigwyg さんが初心者向けの解説をしたり、@hokaccha さんが ref-jquery 書いたよって話をしたり、id:ka-nacht さんがお願いされてライブコーディングをしたりと中々面白かった。随時質問やアンケート(みんなどうしてる?)が出たりして、参加者同士の交流は発表形式の勉強会よりもこっちの方がいいね、やっぱり。 かく言う私はというと、ref.vim を色々改造しようとしていたのだけど、周りが気になって全然作業が進まなかった。いや、みんなは全然悪くないんだよ!私にはもっと集中力が必要。 そういえば ref.vim を使ってくださってる方が結構いて驚いた

    sugamo.vim に行ってきた - 永遠に未完成
    seckie
    seckie 2010/04/13
    お疲れ様でした
  • svn-diff.vim を書き直した - 永遠に未完成

    svn-diff.vim が便利 svn-diff.vim - Show diff when commiting changes on a subversion repository : vim online 便利らしいんだけど、ウィンドウ分割されるのは好みじゃなかったのと実装があまりにもアレだったので書き直した。 ftplugin/svn_diff.vim に置けば使えます。 追記: 最新版はこっち→ https://github.com/thinca/vim-ft-svn_diff 無駄に vimproc 対応。 便利!

    svn-diff.vim を書き直した - 永遠に未完成
    seckie
    seckie 2010/03/01
  • Vim プラグインの開発スタイルのお話 - 永遠に未完成

    Vim のプラグインって作ってる最中は Vim 自体の動作も不安定になりがちだし、普段の環境と同じ環境で作ってるとなにかと弊害が起きがち。ちょっとした変更ならまだしも、大規模な変更は 1 度の作業で終わらないこともあるし、作業中断して別のことをやることになったりするとさらに面倒。 または、VCS でプラグインを管理したくて、プラグインごとにリポジトリを独立したいけど環境分けるのが面倒だとか。 というわけで私が普段やってる Vim プラグインの開発スタイルを晒してみようと思う。 設定 私の vimrc には最後の方に以下の記述がある。 " Load settings for each location. augroup vimrc-local autocmd! autocmd BufNewFile,BufReadPost * call s:vimrc_local(expand('<afile

    Vim プラグインの開発スタイルのお話 - 永遠に未完成
  • cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成

    cmd.exe の引数の扱いがあまりにもカオスだったのでちょっと頑張って調べてみた。 来ならここは公式の資料に当たるのが正しいアプローチだと思うけど、どうしても公式の資料が見つからなかったので、色々試して推測してみることに。 断片的な資料は見付けたけど、完全じゃない。一応URL貼っておく。Windows Server 2003 のヘルプだけど、恐らくそんなに変わらないと思う。 コマンド シェルの概要 コマンド リダイレクト演算子を使用する なので、以下で述べる内容は間違いを含む可能性があります。というか正確さは一切保証されないのであしからず。 検証方法 以下のような引数をただ表示するだけの簡単な C のプログラムを用意した。仮に args.exe とでもしておく。 #include <stdio.h> int main(int argc, char const* argv[]) { in

    cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成
  • vimrc基礎文法最速マスター - 永遠に未完成

    調子に乗って vimrc を書くのに特化した内容のものを書いてみる。取り上げた内容は完全に独断と偏見です。 関連記事: Vimスクリプト基礎文法最速マスター - 永遠に未完成 この記事では vimrc を書くにあたって知っておくべき概念や機能を解説します。Vim 自体の操作方法に関しては触れません。 基礎 バッファ バッファは、ファイルを編集するための論理的な領域です。Vim で新しくファイルを開くと、新しいバッファが作成されてそこにファイルの内容が読み込まれます。 ウィンドウ ウィンドウはバッファを画面に表示するための物理的な領域です。分割することができ、1つの画面に複数のウィンドウを表示できます。 タブページ タブページを使うことでウィンドウの配置を保持したまま複数の画面を切り替えることができます。 タブ文字と区別するためか、タブページと呼ばれています。 モード Vim の中でも知って

    vimrc基礎文法最速マスター - 永遠に未完成
  • グローバル変数の汚染に注意 - 永遠に未完成

    Vim プラグインを書く際、使用する変数は可能な限りスクリプトローカルを使い、グローバル変数はプラグインの設定のみに使用するのが望ましい。スコープをなるべく小さくするした方が良いと言うのはVimスクリプトに限った話ではないだろう。 が、Vimスクリプトのカオスな仕様の宿命なのか、守られていないプラグインもちらほら。 そんなに神経質になることもないんだろうけど、残念ながら私は神経質だったので、今回は私が普段使用している環境の中で見つけた明らかにミスったと思われるグローバル変数を晒してみることにする。 グローバル変数一覧の見方 その前に一応グローバル変数の一覧の出し方から。 :echo join(sort(keys(g:)), "\n") これで見れる。恐らく大量にあるので、空のバッファで :put =join(sort(keys(g:)), \"\n\") とでもやればゆっくり見られるよ。

    グローバル変数の汚染に注意 - 永遠に未完成
  • template.vim 書いた - 永遠に未完成

    template.vim と言う車輪を再発明した。そう、vim ではありがちな「新しいファイルを編集する際にテンプレートを読み込む」プラグイン。名前が適当すぎるのは仕様。 意外な事に、全く同名のスクリプトが www.vim.org に見当たらなかったのでこの名前にした。もちろん考えるのが面倒だったのが1番の理由。ものすごく似た名前ならあったけど気にしてはいけない。 テンプレートエンジンってのは相当な種類出回っていて、短いのになると 1 行で書ける*1。ではなんで今更作ったのかと言うと、ざっと見渡してみて自分好みのものが見当たらなかったから。それだけです。 テンプレートエンジンの自作は vim ユーザが必ず一度は通る道だよね! GitHub - thinca/vim-template: Simple and flexible template engine. 実は書いたのは結構前なんだけど、

    template.vim 書いた - 永遠に未完成
  • ftplugin/javascript_tofunc.vim 書いた - 永遠に未完成

    書いたはいいけど、なんだよそれって人が99%だと思うので説明。 テキストオブジェクトとは :help text-objects を見て下さい。いちいち説明してられない。 textobj-user.vim とは id:ka-nacht さんによる、テキストオブジェクトを簡単に定義するためのフレームワーク。 ここから入手できる。 tofunc.vim とは 関数に対するテキストオブジェクトを定義するための Vim プラグイン。 またパッケージとしては公開されていないが、id:ka-nacht さんの github リポジトリから入手できる。 必要そうなファイル。 |-- after | `-- ftplugin | |-- c_tofunc.vim | `-- vim_tofunc.vim |-- doc | `-- tofunc.txt `-- plugin `-- tofunc.vim最低

    ftplugin/javascript_tofunc.vim 書いた - 永遠に未完成
  • レジスタの変更タイミングまとめ - 永遠に未完成

    あまりにも複雑怪奇すぎて混乱したのでまとめ。 わかりにくかった部分だけまとめた。全レジスタを網羅しているわけではないので注意。 前置き レジスタの指定 以下で出てくるレジスタを指定するとは、 ノーマルモードで "x (xはレジスタ名)を前置する。 :delete :yank コマンドの引数に指定する。 ことを指す。 操作の種類 削除系 d x :delete 変更系 c cc C s S コピー系 y Y :yank 置換系(r R gR)や:changeではレジスタは変更されない模様。 レジスタリスト :helpの内容をまとめたもの。全リストではない。 "_ (削除専用レジスタ) このレジスタを指定した場合は、レジスタに副作用は一起こらない。 "" (無名レジスタ) 削除、変更、コピー系コマンドが使用された際に変更される。 レジスタを指定していても変更される。 "0 (番号つきレジスタ)

    レジスタの変更タイミングまとめ - 永遠に未完成
  • Re: Kaoriya版gvimでOsaka−等幅が使えないー・゜゜・(/□\*)・゜゜・ - MacなVim使い - 永遠に未完成

    _gvimrcをSHIFT-JISで保存して下の記述してるんだけどね。。。 set guifont=Osaka−等幅:h11:cSHIFTJIS Kaoriya版gvimでOsaka−等幅が使えないー・゜゜・(/□\*)・゜゜・ - WANdaful Vim Vim スクリプトにマルチバイト文字を含める場合は、:scriptencoding でスクリプトのエンコードを指定する。 今回はShift_JISのようなのでこう。 scriptencoding cp932 ちなみにこれを実行するタイミングでの 'encoding' オプションが関わってくるので、私のように vimrc 内で 'encoding' を変更している場合はその後に書くこと。 まあ普通は気にせずにファイルの最初に書けばよい。

    Re: Kaoriya版gvimでOsaka−等幅が使えないー・゜゜・(/□\*)・゜゜・ - MacなVim使い - 永遠に未完成
  • Re: vimの勉強〜タグジャンプの勘どころ〜 - daffy log - 永遠に未完成

    .vimrcに以下を追加 set tags=.tags *nixだと.で始まると見えなくなるので上記の様にした。 また、上の様にディレクトリを指定しないと、カレントディレクトリから親をたどってtagsファイルを探してくれる。 vimの勉強〜タグジャンプの勘どころ〜 - daffy log 辿って探してくれません。この指定だとカレントディレクトリにある.tagsしか見ません。 辿ってほしければ set tags=.tags; とします。最後のセミコロン重要。 ちなみに set tags=./.tags; のように./で始めるとカレントディレクトリからではなく、対象のファイルのあるディレクトリからの相対位置になります。多分こっちの方が便利。 'tags'オプションに指定するセミコロンは便利なのに割と知られていないので紹介してみた。詳細は :help file-searching

    Re: vimの勉強〜タグジャンプの勘どころ〜 - daffy log - 永遠に未完成
    seckie
    seckie 2010/02/03
  • KaoriYa 版で追加される機能まとめ - 永遠に未完成

    KaoriYa 版 Vim では日語を使う際に便利な patch が多数当てられている。patch 自体は体に付属しているが、そこ以外で体との差分をまとめたものが見当たらなかったので、patch を参考に家からの変更点をまとめてみた。 足りない部分や勘違いしている部分がある可能性があるので、突っ込み歓迎。 確認に使ったバージョン Vim 7.2-20090321 香り屋版 runtime syntax/memo.vim 新規に追加。どんなものかは README_w32j.txt を開いてみればわかる(このファイルが ft=memo に設定されている)。 syntax/java.vim javadoc コメント内の最初の一文は専用の色でハイライトされるが、"." だけでなく "。" で終わる部分も文として認識するように修正されている。 syntax/2html.vim ftp://~

    KaoriYa 版で追加される機能まとめ - 永遠に未完成
  • Vimスクリプト基礎文法最速マスター - 永遠に未完成

    流行ってるみたいなので遅ればせながら便乗。需要?何それおいしいの? Perl基礎文法最速マスター - サンプルコードによるPerl入門 - Perlプログラミングの基礎から応用まで Route 477(2010-01-25) PHP基礎文法最速マスター - Shin x blog Python基礎文法最速マスター - LazyLife@Diary VBA基礎文法最速マスター - いろいろ解析日記 Java基礎文法最速マスター - いろいろ解析日記 Bash基礎文法最速マスター - いろいろ解析日記 Haskell基礎文法最速マスター - think and error Brainf*ck基礎文法最速マスター - このブログは証明できない。 VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ JavaScript基礎文法最速マス

    Vimスクリプト基礎文法最速マスター - 永遠に未完成
  • gVim でフォントサイズを変えるプラグインを作った、んだけど… - 永遠に未完成

    知っている人は知っていると思うけど、実はこの手のプラグインはすでに何個かある。と言うか今回のこれも実は最初は既存のをちょっと直しただけのものだった。経緯を書くと、 zoom.vim : 「+」、「-」キーで文字の大きさを変更 — 名無しのvim使い の存在を知る。 (今年の1月ごろ) が、使ってみたら動かなくて、ソースを見てみたら実装があまりにもアレだったので書き直した。 公開しようかとも思ったけど、実装部分は丸々書き換えたけどインターフェースやプラグイン名はそのままだったのと、元のスクリプトのライセンスが不明で確認するのも面倒だったので放置。 そして…11か月の月日が流れた…。 最近になってこういう話題を見てふと思い出して、なんとなくソース眺めてた。 気付いたらコマンド名が :Fontsize に変わって使い方も変わっててプラグイン名も fontsize.vim になってた。 元々実装部

    gVim でフォントサイズを変えるプラグインを作った、んだけど… - 永遠に未完成
  • Windowsで:set encoding=utf-8する方法 - 永遠に未完成

    Vimの'encoding'オプションはVimが内部で扱うエンコーディングを設定する。この値がcp932やsjisなどだと、ユニコード文字が表示できない。今時ユニコード文字の表示なんてメモ帳でもできる。メモ帳に負けていいのか!否! と言うわけで是非とも:set encoding=utf-8で使いたいわけだが、Windowsでこれをやるとシステムメッセージなどが見事に文字化けする*1。で、これを回避する方法*2。 言語ファイルを入手する download : vim onlineから言語ファイル(ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz)をダウンロードしてくる。 中身からja.poを取り出し、UTF-8に変換する。 ja.sjis.poもあるが、これはダメ。中にダメ文字を回避するバックスラッシュが入ってる。 Vimでやる場合は、j

    Windowsで:set encoding=utf-8する方法 - 永遠に未完成
  • 1