おさかな日誌

魚類がプログラミング

vimfiler 使いはじめた & 設定キメた

NERD Tree を一時期使ってたのだけど、なんかちがうなぁ... と思ってずっと unite.vim の file を使ってファイルを開いてたのだけどやっぱツリー構造で表示したいなぁって思ってて、MBP の環境構築に合わせて vim 周りをちょっといじったので vimfiler を導入してみた。これがよかった。

vimfiler 自体はデフォルトで起動すると vim 標準の filer + α なイメージで、コマンドオプションを使うと NERD Tree みたいな IDE のファイルツリーみたいなのも表示できる、みたいなやつです。

f:id:aladhi:20150328172336p:plain

vimfiler のなにがよかったか考えてみたんだけど、デフォルトの key binding が自分の思考に合ってたからな気がする。なにも見ずにとりあえず o 押した時にツリーがパカって開いたので「おっよさそう」って思った。他の binding も気に入ってる。あと help が読みやすかった。

:h vimfiler とググってでてきた記事いくつかを参考にして設定キメた。

  • autocmd FileType vimfiler nmap <buffer> <CR> <Plug>(vimfiler_expand_or_edit)
    • デフォルトだと Enter でディレクトリに入ってしまって好みと合わないので、Enter は単にツリーを開くだけにした。hl で "親ディレクトリに移動" と "子ディレクトリに移動" がデフォルトでできて対称性あるので、こっちの設定のが好み。
  • let g:vimfiler_as_default_explorer = 1
    • vim 標準のファイラを置き換える。
  • noremap <C-X><C-T> :VimFiler -split -simple -winwidth=45 -no-quit<ENTER>
    • C-X C-TIDE みたいなファイルツリーを開く。width の値を適当に変えると大きさが変わる。
  • autocmd VimEnter * VimFilerExplorer
    • vim 開いたら vimfiler が表示される。けど、git commit message でもでてきて、たぶん filetype とかで分岐すればいいんだろうけど、とりあえず無効にしている。気が向いたら filetype 判定やりたい。

参考にしたリスト

設定ファイル

taiki45/dotfiles · GitHub

NeoBundle 'Shougo/vimfiler'

" Use vimfiler instead of default filer.
let g:vimfiler_as_default_explorer = 1
" Open filer
noremap <silent> :tree :VimFiler -split -simple -winwidth=45 -no-quit
noremap <C-X><C-T> :VimFiler -split -simple -winwidth=45 -no-quit<ENTER>
" Don't let <CR> enter the directory but let it open the directory
autocmd FileType vimfiler nmap <buffer> <CR> <Plug>(vimfiler_expand_or_edit)
" Automatically open vimfiler on start
"autocmd VimEnter * VimFilerExplorer
" If no files are specified, open vimfiler
"autocmd VimEnter * if !argc() | VimFiler | endif