入れててよかったVimプラギンとか設定とか
この記事はCPS Lab Advent Calendar 2015 - Adventarの14日目の記事になります。後輩向けに書きました。
Elixirのこと書こうと思ってたんですが、まだまだひよっこなのでまた後日。
Vimも自分でプラギン書かないひよっこですが、始めたばかりの人の役に立てそうなレベルのこと書きます。
入れててよかったVimプラギン
今回はとりあえず入れてみたけど助かってるなぁと感じたVimのプラグイン(設定)を紹介しようと思います。
プラグイン入れることが全てではないですが、先人がベンリなものを作ってくれてるのでありがたく使わせてもらいます。
NeoBundle使ってるvimrcをそのまま切り貼りしてるのでたまに出てきますが、適宜読み替えて貰えれば幸いです。
lexima.vim
ソースコード書いてると良く""
や()
で文字列を囲みますがその入力を助けてくれるプラグインです。
IDEっぽい感じになります。
自動で""
や{}
を入力してくれるのでほぼ閉じ忘れがおきません。
文字で表現してもわかりづらいと思うので、githubのgifを見てください。
" lexima.vim {{{ if neobundle#is_sourced("lexima.vim") let g:lexima_no_default_rules = 1 call lexima#set_default_rules() endif " }}}
incsearch.vim
マッチするものが全てハイライトされるインクリメント検索ができます。 それがとても良いのです。
" incsearch {{{ map / <Plug>(incsearch-forward) map ? <Plug>(incsearch-backward) map g/ <plug>(incsearch-stay) " }}}
eskk.vim
Terminal環境によってはIMEが使えなくなってしまって困ることがあります。
そんな時に活躍します。skkの入力方式は癖がありますが、IMEなしで日本語が入力できるのはとてもありがたいです。
よく環境をお引越しする人にオススメです。
"eskk設定 {{{ let g:eskk#directory = '~/.eskk' let g:eskk#dictionary = { \ 'path' : "~/.skk-jisyo", \ 'sorted' : 0, \ 'encoding' : 'utf-8', \} let g:eskk#large_dictionary = { \ 'path' : "/usr/share/skk/SKK-JISYO.L", \ 'sorted' : 1, \ 'encoding' : 'euc-jp', \} let g:eskk#enable_completion = 1 " }}}
プラギン以外
知ってると少しうれしい機能です
keywordprg
Vimではカーソル下のキーワードを調べる仕組みが用意されています。
デフォルトではK(Shift + k)
でカーソル下のキーワードをman
を使ってしらべますが、
言語によってはドキュメントを検索するツールを指定したいです。その時にkeywordprg
を使います。
autocmd FileType ruby call s:ruby_filetype_settings() function! s:ruby_filetype_settings() setlocal tabstop=2 shiftround shiftwidth=2 setlocal completeopt-=preview setlocal keywordprg=ri endfunction
これでRubyのコードを書くときにK
を押せばri
でドキュメントを参照してくれるようになります。
vimのコマンド実行について
Vimではコマンドが一意に定まるとき、最後まで入力せずともコマンドが実行できます。タブで補完する必要もありません。
どういうことかと言うと、実行できるコマンドにExciteTranslate
とExplore
があったとして、
:Explore
これを
:Exp
に省略することが出来ます
自分でコマンドを書く際にこれを意識すると、とても入力効率が上がると思います。
下のscriptは現在開いているbufferのディレクトリにcd
するコマンドです。
command! CDCurrent call s:CDCurrent() function! s:CDCurrent() if isdirectory(expand('%:h')) cd %:h endif endfunction
:CD
で始まるコマンドは僕の入れているプラグインと被っていないので、これだけでbufferのディレクトリに移動できます。
なるべく被らないコマンドを定義して指を休めてください。
Vimはautocmdとmapだけですごく楽ができるので、慣れたらガシガシいじってください。
その他ポインタ
VimのCTRL-X補完について - daisuzu's notes
vim-jp » Vimのユーザーと開発者を結ぶコミュニティサイト
Vim Advent Calendar 2015 - Qiita
時間切れだぁ(・ัω・ั)