dotfilesを育て始めた話 その2 (vim編) + おすすめプラグイン
はじめに
dotfilesを育て始めた話 その1 (dotbot編)の続き
vim周りの設定について
dein.vim
vimをより便利にするために,dein.vimというプラグインマネージャーを導入している.
現在の僕の設定はこちら
dotfiles/vim
dein.vimの導入
" dein detup let s:dein_dir = $HOME . '/.vim/bundle' let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim' if &runtimepath !~# '/dein.vim' if !isdirectory(s:dein_repo_dir) execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir endif execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p') endif if dein#load_state(s:dein_dir) call dein#begin(s:dein_dir) " Load and cached toml " all plugins listed in toml call dein#load_toml(s:dein_dir . '/rc/dein.toml', {'lazy': 0}) call dein#load_toml(s:dein_dir . '/rc/dein_lazy.toml', {'lazy': 1}) call dein#end() call dein#save_state() endif " If you want to install not installed plugins on startup. if dein#check_install() call dein#install() endif
以上のコードをvimrc内に記述する.
これでvimを開くとdeinがない場合自動でdein.vimがインストールされる.
プラグインの導入の際は
if dein#load_state({path to plugin base path directory})
以下に
call dein#add({path to dein.vim directory})
として書き連ねていってもいいが, プラグインが増えてくるとvimrcが肥大化してしまうので
if dein#load_state(s:dein_dir) call dein#begin(s:dein_dir) " Load and cached toml " all plugins listed in toml call dein#load_toml(s:dein_dir . '/rc/dein.toml', {'lazy': 0}) call dein#load_toml(s:dein_dir . '/rc/dein_lazy.toml', {'lazy': 1}) call dein#end() call dein#save_state() endif
とし,tomlにプラグインを記述した.
dein.tomlにはvim起動時から使いたいプラグインを,dein_lazy.tomlには特定のファイルなどを開くときにのみ読み込みたいプラグインをそれぞれ記述することにより,vimの起動を高速化した.
プラグインをgit管理しないようにする
今回,deinを含めたプラグインの保存先をgit管理している.vim内にしたため,
git add .
とかするとプラグインもgit管理される.
そうするとリポジトリ内にリポジトリが生成されることになり,またsubmodule扱いでもないため面倒なことになる.
いちいちプラグイン以外を指定してcommitしたりpushするのも面倒なので,gitignoreに
vim/.vim/bundle/repos/github.com/
とか書いてプラグインの保存先はgitで管理しないようにしておく.
導入したプラグインたち
おすすめとか言いつつ面白そうだからとりあえず入れてるプラグインもいくつかあるので,使っているうちに最適化されていくはず.
dein.toml
Shougo/dein.vim
言わずと知れたプラグインマネージャー
Shougo/neosnippet.vim
スニペット表示用プラグイン.定型構文を一発入力できる.
これだけだとスニペットは表示されないので適宜必要なスニペットを追加します.
Shougo/neosnippet-snippets
基本的なスニペットが含まれたneosnippet用プラグイン
Shougo/neocomplete
優秀な補完プラグイン.必須と言っていいくらいおすすめ
itchyny/lightline.vim
vimのステータスバーをきれいに見やすくしてくれる.(リンク先参照)
tomasr/molokai
vimのカラースキーム
ちょっとカラフルすぎるという人もいるので好みに応じて使ってください.
scrooloose/nerdtree
atomやsublimeのようにプロジェクトツリーを画面横に表示してくれるプラグイン
Xuyuanp/nerdtree-git-plugin
nerdtree上に表示されるファイル横にgitステータスを表示してくれる.
airblade/vim-gitgutter
vimの行横に+や-で差分を表示してくれる.
dein_lazy.toml
python
davidhalter/jedi-vim
python用の補完プラグイン
hdima/python-syntax
文字通り,pythonのシンタックスハイライティングをしてくれる.
Go
fatih/vim-go
vim上でgofmtやgoimport, gobuildなどの操作ができる便利プラグイン.
保存時の操作などと組み合わせると,保存時に自動でgofmtしたりできる.
js
jelera/vim-javascript-syntax
その名の通りjs用のシンタックスハイライティングプラグイン
html
othree/html5.vim
htmlの補完,インデント,シンタックスをまとめてやってくれる.便利.
css
hail2u/vim-css3-syntax
css用シンタックスプラグイン
ruby
tpope/vim-rails
vim上でrailsアプリケーション開発に必要なコマンドを実行できる. rakeとかconsole開いたりとか.
特に便利なのは対応したcontroller, model, viewに一発ジャンプできる機能.
toml
cespare/vim-toml
tomlのシンタックスプラグイン
markdown
plasticboy/vim-markdown
シンタックスハイライトとスニペット(tableとか)表示的なことができるmarkdown用プラグイン
kannokanno/previm
markdownのリアルタイムプレビューができるプラグイン.地味に便利.
tyru/open-browser.vim
ファイルのURIをブラウザで開いてくれるプラグイン,上のprevimと一緒に使うとプレビューの際に自動でブラウザを開いて表示してくれる.