ここ 2 年くらいはガッツリ Swift エンジニアだったのもあって、わりと Vim から離れてたわけなんですけども、いまアプリ開発自体は担当しなくなって最近は Ruby/PHP 触る時間が増えてきて、まあ Xcode と比べるとだいぶ(自分の)環境が貧弱で不便だし、ここ数年で大きな変化があったっぽい感じなのでプラグインまわりをモダンな環境に移行しはじめてます。なお、この記事には Ruby や PHP に特化した話題は出てこない模様。
neovim
いきなりだけど neovim にしました。neovim のほうが deoplete とか denite とか先進的なプラグインのサポートが良さそうと思ったのが理由です。
2 年くらい前に触った時は、日本語入力してると文字化けしていくという謎の現象があったり、パフォーマンスで気になるところがあって移行しなかったのですけど、今回試した 0.3.1 だと特に気になる点もなくて快適でした。
Plugins
まずは「あ、これ一度も使ってないや」ってやつを削除しまくってから(大事)、もうメンテされてない古いやつを移行したりとかなんとか。
とりあえず主に使ってるプラグインを列挙します。
Shougo/dein.vim
パッケージ管理のプラグイン。これがないと始まらない。
Denite 関連
https://github.com/Shougo/denite.nvim
https://github.com/Shougo/neomru.vim
Denite ってなんて言えばいいんですかね。検索のインターフェイス。バッファの切替やファイルオープンが高速にできるやつです。neomru は denite 用に「最近使ったファイル」を検索できるようにしてくれる。
git まわり
tpope/vim-fugitive
git のコマンド実行をエディタから出ないでできる。前は git-vim を使ってたけど、blame くらいしか使わなかったかな…結局コマンドラインのほうが慣れてるという。後述する rhubarb が便利なので乗り換えた。
tpope/vim-rhubarb
fugitive を拡張するためのプラグイン。github で管理しているファイルを開いてから :Gbrowse
をすると、なんと github.com 上の該当のファイルをブラウザで開いてくれてプレビューできる。VISUAL モードで選択してからだとアンカーリンクにもなる。
仕事だと github 上のリンクでポインタを示すことが結構あるんでこれはだいぶ捗りそう。
airblade/vim-gitgutter
sign の領域に git のステータスを表示してくれる。追加・削除・変更したところがすぐわかる。
vim-scripts/git-commit
git commit
してコミットメッセージを編集する時に、git diff
の内容も一緒に見れるようにしてくれるプラグインです。なにを変更したのかわかるので便利。
補完まわり
Shougo/deoplete.nvim
https://github.com/Shougo/deoplete.nvim
https://github.com/Shougo/neoinclude.vim
https://github.com/Shougo/neosnippet.vim
https://github.com/Shougo/neosnippet-snippets
neocomplete から乗り換えて deoplete へ。なにが変わったのか正直よくわからないのだけど…安定してます。neosnippet も素のままで十分環境がよくなる。
まだ言語ごとに特化した補完プラグインが選定できてないのでそれについてはまた今後。
Raimondi/delimitMate
カッコやクォーテーションを入力したら閉じカッコとかを補完してくれる。こういうの、導入前は「余計なことされたら邪魔そう」とか思う方なんだけど、すくなくとも delimitMate はまったく手放せない存在になっている。
w0rp/ale
lint 結果を逐一報告してくれるプラグイン。PHP を書いてるとセミコロンを忘れる事故が多発するんだけど、こいつのおかげで syntax error に悩まされることはなくなりそうです。
以前は syntastic を使ってたんだけど、ファイルを自動保存してるとチェックしてくれないことと、ale のほうが動作速度が快適のようなので乗り換えました。
thinca/vim-localrc
.local.vimrc
てファイルを置いとくと、このファイルがあるディレクトリ以下のファイルを開いた時に内容が適用される。プロジェクトごとの設定とか管理するのに使ってます。
vim-scripts/table_format.vim
テキストを整形してくれる。これも長年愛用しているプラグイン。
実行前 | 実行後 |