そろそろしっかりvimを使う。quickrun,uniteの導入。
引き続き、vimでRubyのコーディングをするためにプラグインを入れていく。今回が「しっかりvim」の最終エントリ。
前回(そろそろしっかりvimを使う。vimでRubyのコーディングをするために - holyppの日記)は、「補完」と「リファレンス」の環境を整えた。
これでコードを書くには問題が無くなったが、書いているうちにもう少し機能が欲しくなる。
次に欲しくなるのは「高速な実行環境」それに「高機能なファイラー」だ。
そこまで環境が整えば、コーディングの効率が見違えるように上がる。
今回はその2つを導入し、前回とあわせて「補完機能」「リファレンス呼び出し」「実行環境」「ファイラー」を揃える。
これ以降も特化したプラグイン、例えばRailsを書くときにrails.vimを入れる必要はあるが「基本セット」は揃ったと考える。
なお、本エントリは下記の続きなので、前提等で不明な点があれば参照して欲しい。
そろそろしっかりvimを使う。dotfilesのgithub管理とvundleの導入。 - holyppの日記
そろそろしっかりvimを使う。github+vundleを利用したWindowsとの同期。 - holyppの日記
そろそろしっかりvimを使う。vimでRubyのコーディングをするために - holyppの日記
環境
MacOSXで、プラグインはVundleを使ってインストールした状態。
vim-quickrun
vim-quickrunは、vimで編集中のファイルをすぐに実行することができるプラグイン。
これがあれば、実行結果を確認しながら修正を行うことが出来る。
他にもプログラミングの写経を行うときなど、いつでも結果を見ることが出来るので重宝する。
使い方はファイルを開いたまま 「
ウィンドウが分割され、上に結果が表示される。
なお、引数を渡したいときは 「:QuickRun -args hoge」 とする。
このプラグインも、Rubyだけでなく多くの言語に対応している。
unite.vim
unite.vimは「任意の情報源から、任意の動作を実行する」ことができるプラグイン。
多機能なプラグインなので、一気に理解しようとせず「習うより慣れろ」で導入することを勧める。
私は主に「ファイラー」として使っており、今回は下記2つの動作を紹介する。
「最近使用したファイルを開く」
「任意のディレクトリにあるファイルを開く」
なお、理解するにはDOCをしっかり読み込むのが一番の近道だと思う。
https://github.com/Shougo/unite.vim/blob/master/doc/unite.jax
コマンド拡張と.vimrc
unite.vimではコマンドの拡張が行われるので、.vimrcでマッピングを行う。
コマンドは、主なものに「:Unite [{options}] {sources}」がある。
optionsではバッファ名の指定などを行う。(必須ではない。)
sourcesには「最近使ったファイル」や「今使っているファイルと同じディレクトリのファイル」など開く対象を指定する。
(※下記の.vimrcではoptionsとsourcesの順番が逆だが動作する。先にoptionsを書いたほうが良いかも。)
以下は私の.vimrcからunite.vim関連部分を抜粋。
私のマッピングは文字列「:xxx」が多いが、いろんな方の.vimrcを見ていると「Ctrl+何か」としているものをよく見る。
" 入力モードで開始 let g:unite_enable_start_insert=1 "mru,reg,buf noremap :um :Unite file_mru -buffer-name=file_mru noremap :ur : Unite register -buffer-name=register noremap :ub : Unite buffer -buffer-name=buffer "file current_dir noremap :ufc : Unite file -buffer-name=file noremap :ufcr : Unite file_rec -buffer-name=file_rec "file file_current_dir noremap :uff : UniteWithBufferDir file -buffer-name=file noremap :uffr : UniteWithBufferDir file_rec -buffer-name=file_rec " c-jはescとする au FileType unite nnoremap " ESCキーを2回押すと終了する au FileType unite nnoremap :q au FileType unite inoremap :q
最近使用したファイルを開く
最近使用したファイルを開くにはsourcesをfire_mruとする。
コマンドは、:Unite [{options}] {sources}なので、上記.vimrcのこれが対応する。(前述の通り引数の順番が逆だが動作する。)
noremap :um :Unite file_mru -buffer-name=file_mru
要するに、私の環境ではvim上で 「:um」 と押下するとウィンドウが分割され、上がuniteのものになる。
ここで「_vimperatorrc」が開きたいと思ったら、そのまま「vimp」などと入力することで絞り込みが行える。
その後
このあたりの動作は全てカスタマイズが可能。
任意のディレクトリにあるファイルを開く
もう一つ例を。上記と同じ要領でsourcesを「今開いているファイルのディレクトリ」としたい場合はこちら。
noremap :uff :UniteWithBufferDir file -buffer-name=file
もちろん「:uff」でも「:UniteWithBufferDir file」でもunite.vimが開くものは同じ。
ディレクトリを書き換えて目的のファイルを見つける。(上の状態から「txt/」を削ったところ。候補も反映されている。)
このあたりは実際に使うとすぐに理解できる。
説明を続けると長くなる一方なので、後述の「参考サイト」を見たり、実際に使うとわかりやすい。
参考サイト
GitHubはこちら。前回に引き続きShougoさん、thincaさん、ありがとうございました。
thinca/vim-quickrun · GitHub
Shougo/unite.vim · GitHub
以下は私が導入時に参考にさせていただいたサイトです。どうもありがとうございました。
・vim-quickrun
新卒さん向け、速攻でプログラミングをマスターできるvimプラグイン「quickrun」:phpspot開発日誌
・unite.vim
Vim-users.jp - Hack #200: 候補を選択し、実行する
せっかくだから、俺はこの Unite + vim-ref を選ぶぜ! - blog.remora.cx
Vimでunite.vimプラグインを使い始めて一週間 - アインシュタインの電話番号☎
「しっかりvim」終わりに
あるとき、ふと「vimを使ってしばらくたつけど、何も学んでないな」と思った。
エディタはしっかり使い込むべきだと感じていたので「そろそろしっかりvimを使ってみるか」と、意識的に学ぶように心掛け、エントリも書くようにした。
その結果、vimは「導入」というレベルをようやく抜けて「学ぶ習慣を維持する」レベルになった。
このままのペースでvimを学び続けていけば、遠くない時期に中級者になれるんじゃないかと思っている。
最後に。
前回のエントリの話ですが、多くのブックマークをつけていただき、ありがとうございました。
「vimをこれからも学んでいこう」という気持ちが強くなる良いイベントになりました。