Vimを使うにあたり、様々なテキストエディタ勢から「カスタマイズにハマると永遠にカスタマイズをするので良くない」という警告を受けていたのですが…見事にその無間地獄に嵌っています。正確にはカスタマイズして、太ったvimrcを見て、カスタマイズを外すという物理的には何も得られないという…正確には頭のカスタマイズが進むので精神的な充足はあるのですが、何にしろあまり良いとは言えない関わり合い方をしているわけです。というわけでバッドノウハウとしてなぜカスタマイズしようとして、なぜカスタマイズしないという選択に至ったか、のお話です。
vimrc
を開くキーマップは必要か?
これに関しては多くのVimmerが「必要だ」という見解だったので当たり前のように仕込んでいました。仕込んだ先は<Leader>vv
、ここから<Leader>v
をプレフィックスにgvimrc
用、vim-plug用、プラグインやリマップ用…と増えて行きました。更にnetrwのブックマークまで包括的に管理出来るものを求めた末に、現在は間接的なリマップを残すのみで総て削除しています。
今はどうなっているか、と言うと<Leader>v
に:e v
がアサインされており、それとv
で始まる短縮入力を使って移動を実現しています。この方法の予想外の利点として、挿入モード中にも<C-r>=
から短縮入力経由でパスが入力できるので…まぁ、そういう方法があると気がついただけで良かったのでしょう。
ちなみにその過程でnetrwのブックマークへの直アクセスは不要ということになりました、というよりnetrwのブックマークを使うより短縮入力にパスを入れたほうが使い勝手が良かった…といううちにnetrwのブックマーク自体を使わなくなりました。
ウィンドウ操作のあれこれ
上の項目とも被るお話ですが、:Explore
コマンドが行っている現ウィンドウの変更をチェックしてウィンドウ分割するのは賢くていいなぁと思ったんですが…結論としてはこれは自分でコントロールすべきなんだろうなと思いました。そのために<C-w>
のキーマップがあるわけで、これを覚えるのが一番スマートな方法なんだとおもいます。
その過程で、何故Vimは新しいウィンドウを開くと上か左に出るのかが分かりました。今の操作で出来るウィンドウを見た目の上位に表示する様になっているので、これに合わせて'spllitbelow'
、'splitright'
あたりの設定も消えました。
整形用の空行追加
行追加、といえばまぁo
使えばいのですが、整形のためだけとなるとカーソルが動くのが気になるので…これも色々試したのですが結論として外しました。m'
をちゃんと活用すべきなのかもしれません。もしくはそういう形でキーマップを入れるか、Vim自体がテキストオブジェクトによって文書、もしくはスクリプトを管理しているのだから既に規定されているテキストオブジェクトをしっかり意識しながら作業をすることが大事なんだと思います。要はテキストの追加と整形を一緒に考えないように整形をあとに回すか、常に整形されたものを想定し続けることでそう言った操作が必要ないようにすべきなんだと思います。
コマンドの結果をウィンドウに表示するスクリプト
これはワンライナーで書けたので単純に必要なかったです。ワンライナーで書けるなら短縮入力に仕込めばいいだけでした。
:new +setlocal bt=nofile|put=
で代替できました。コマンドが必要ならexecute('normal ')
を追加しておけば事足ります。