vaffle.vim から netrw にお試しで移行してみた

今まで、vimのファイラとして vaffle.vim を使ってきた。正確な使用期間は思い出せないが私がvimを使い始めてから結構な期間使っていたと思う。

github.com

ただ、vaffle.vim は buftype を nofile に設定している関係上、 grep をしたときに閉じずに残ってしまうという現象が発生する。これは、dirvish でも同じ現象になるので、vaffle.vim だけの問題ではなさそうだった。自前でファイラを作ってしまおうか?とも思ったが、調べていく途中で、netrwでは発生しない問題だということに気いたので、netrwをカスタマイズして使えるようにすれば解決するのではないか?という思いから、vaffle.vim をやめてnetrw に移行することにした。

最近、Vim界隈で有名なゴリラさんもnetrwをお勧めされているようで、以下に記事がある。それを参考にしつつ私のvimrcもいじってみた。

qiita.com

以下が私のnetrwの設定である。

" バナーを非表示
let g:netrw_banner=0

" ファイル/ディレクトリ名のみ表示(日付等は表示しない)
let g:netrw_liststyle=0

" プレビューは縦分割する(使うことはあまりなさそう?)
let g:netrw_preview=1

" デフォルト表示をドットファイル非表示に設定
let g:netrw_hide=1

" g:netrw_hide で非表示にするファイルの設定.
" これがないとちゃんと非表示にならない
let g:netrw_list_hide='\(^\|\s\s\)\zs\.\S\+'

augroup NetrwKeyMap
    au!

   " 親ディレクトリに移動する (h)
    au FileType netrw nmap <buffer> h -

   " ファイルを開く、ディレクトリ移動 (l)
    au FileType netrw nmap <buffer> l <CR>

   " ウィンドウ移動 (s) // デフォルト動作はソートの種類変更
   " (あまりつかわないかなぁという理由でつぶす)
    au FileType netrw nmap <buffer> s <C-W>

   " ドットファイルの表示/非表示切り替え
   " vaffle.vim に挙動を合わせる
    au FileType netrw nmap <buffer> . gh
augroup END

とりあえずはこの設定でやってみようと思う。懸念点としては、今まで i でファイルを作成していたがそれができなくなったことくらいかなぁと思っている。netrwのいい点は、デフォルトで x で関連付けられたプログラムでファイルを表示することができることや、 c で表示中のディレクトリをカレントディレクトリにすることができること。vaffle.vim ではシンプルさを追求しているため、このあたりの動作は実装されていなかったので自前で拡張する必要があったが、netrwはその必要がないので、vimrcがすっきりしそうだなぁという感覚がある。