背景
Textmateを一年、Sublime Text2を半年くらいで、このたび Vimに乗り換えました。
Sublimeに戻りたくなる気持ちをぐっとこらえられたのは、下に紹介するプラグイン・ライブラリ達のおかげです。
プラグインの管理は、NeoBundle使ってます。
https://github.com/Shougo/neobundle.vim
仮説「ナビゲーション・検索ができれば、なんとか使い続けられる」
- NERD-tree (ディレクトリ構造内でのナビゲーション)
- CtrlP (ファイル名での検索)
- ag (ファイルの中身での検索)
- Rails.vim(Railsの場合。 MVC間での移動)
- おまけに ctags(メソッド名での移動)
NERD-tree
- vimを起動させると、ディレクトリのツリー構造で開いてくれる。
- NERD-tree上で mを押すと、ファイル・ディレクトリの追加・削除・移動ができます。
https://github.com/scrooloose/nerdtree
CtrlP
- Vimにいるとき、Ctrl+pで起動。
- ディレクトリ内のファイル名で、再帰的に検索できます。
https://github.com/kien/ctrlp.vim
http://qiita.com/oahiroaki/items/d71337fb9d28303a54a8
ag
- ファイル内の単語で検索
- grepだけど、早いし、シンタックスも直感的。
$ ag --ruby controller
みたいな感じ。 https://github.com/ggreer/the_silver_searcherhttp://blog.glidenote.com/blog/2013/02/28/the-silver-searcher-better-than-ack/
ctags
- メソッド名の参照関係を追えるtagsファイルを生成する
tagsファイルがディレクトリにある状態で、vim内で Ctrl+] を押すと、そのメソッドの定義場所に飛べる
Rails.vim
- Railsフレームワーク内での移動・コマンド実行を快適にするプラグイン
- viewファイルにいるときに
:Rcontroller
とやると、対応するコントローラーアクションにジャンプ :Rview
:Rmodel
もそんな感じ。他にも便利コマンドがいっぱい!!
https://github.com/tpope/vim-rails
http://qiita.com/y_uuki/items/57e726312ffe47592867
嬉しい副作用
- GUI、マウス操作でも何とかなるエディタだと、とりあえず手を動かしてみる、という思考になりやすい気がする。
- 上記ナビゲーションは、NERD-tree以外は 「移動する前に、自分が何をしたいのか考えてないと手を動かせない」です(メソッド名、ファイル名、MVC層、での移動)。
- Vimじゃなくても良いけど、Vimは 良い設計とは何か考えながらコーディングができる矯正器具のようなものだと考えてます。
※ 最初は Thoughtbot社さんが公開している dotfiles に手を出してみました。
https://github.com/thoughtbot/dotfiles
zshの補完機能まじやべー と思ったけど、あまりにも劇的に変わりすぎて、正直ついていけんかった。