Vim

暗黒の力なんて要らなかったんや! - Vim nativeな操作を目指すためにDeniteを手放す

この数日でVimが完全に過ぎた玩具と化してとりあえず毎日弄ってみるという状態が続いているんですけど、当然なんですがプラグインディレクトリが太ります。ディレクトリが、は言いすぎだけどplug#begin()以降は目に見えて増えているのが分かります。その中で「あっもう要らないな」と思ったらどんどん消していくことにしてるんですけど、denite.nvimでツリー表示がとても難儀する事に気がついてNERDTreeを入れたところで気がついてしまったんです。

「これネイティブの機能で済むことをDeniteに任せてたんじゃ…」

あぁ、あとバニラが好きなんです…いやアイスもそうなんですけど…

悪魔の契約

Denite用に割いたキーマップは3つありました。

  • ファイルメニュー
  • バッファメニュー
  • 最近開いたファイル

そのうちファイルメニューはNERDTreeを導入したので全てNERDTreeに任せても個人的には不満がないです。というわけで…

remap.vim
noremap <Leader>f :NERDTree<CR> | cnoremap <Leader>f NERDTree<CR>

無事契約が一つ破棄出来ました。ついでにQiita更新の為にそれ用のキーマップも作ってしまいましょう…

qiitactl.vim
noremap <Leader>q :NERDTreeFromBookmark qiitactl<CR>
cnoremap <Leader>q NERDTreeFromBookmark qiitactl<CR>

自然の祝福

バッファに関しては昨日ガッツリまとめてしまった為、コマンドで引っ張り出してしまう方が早い気がしています。その上でちょっとしたズルとしてvim-script/ViewOutputを使ってバッファリストを一度ウィンドウに出してしまえば…

  • :VOでバッファが開く
    • 分割方向が違うなら<C-w> L
  • :b[0-9]で開く

これで十分でしょう。

remap.vim
noremap <Leader>b :VO ls<CR> | cnoremap <Leader>b VO ls<CR>

残りの契約はあと一つです。

新たな視点

あとは最近開いたファイルを何とかするだけですが、ちょうどいいところに:ol[dfiles]なんてコマンドを見っけました。もちろん採用です。Vimのドキュメントでは:bro[wser] olとすれば番号を選択して…とありますがviminfoの履歴プールが100桁あるのでこれはマトモに機能しなさそう。出来ることは…

  • set viminfoで履歴の数を減らす
  • :filter /[regex]/ bro olを使う
  • :VO oldfilesでリストをウィンドウに開いてから:e #<[0-9]で開く

最後のがバッファとUIを共通化出来て良さそうだしこれを採用することにします。

remap.vim
noremap <Leader>r :VO oldfiles<CR> | cnoremap <Leader>r VO oldfiles<CR>

これで、無事denite.nvimと、neomru.vimも契約破棄となりました。

Vimコミュニティの手中

…正直突っ込んで使ってみて、「本当に恋に落ちるブラウザはこれだったんや!」と確信してしまっております。今までnanoに甘えたり、気持ちいいエディタを探して取っ替え引っ替えしてたのは何だったんだとなる程に取っつきづらくて、でも最高に遊べるエディタなんだなぁと。…いや多分人には勧めないと思うんですけど。

んで、deniteを使う日は来るの?

その日が来てみないことには…実際deniteからQiitaAPIで更新できるんだったら多分deniteを使い続けたと思うんで…