Hatena::Grouphackathon

zrail (a.k.a. tobira17, h14i, ...) の Learning Log

2017-02-11

[][]最近のマイヴィムアールシー 00:19 最近のマイヴィムアールシー - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - 最近のマイヴィムアールシー - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

外部プラギンに関して

一時期はプラギンジャンキー的な感じで色々入れてたんだけど、最近はだいぶ落ち着いてきた。

といってもやっぱり手放せないものはそれなりにある。

例えば kana さんの vim-*-user (とその上に乗る拡張)とか、 thinca さんの quickrun とか ref とか。

それから vim 本体には(まだ)バンドルされていない、新しめの言語用(例えば vim-rust)のプラギンとか。

インサートモードに関して

上とも関連するんだけど、自動(でポップアップまでしてくれる系の)補完プラギンを使うのを止めた(スニペット展開の emmet.vim は使ってるけど)。

使うのを止めた理由はいくつかあるんだけど、一番大きい理由としては動作の重さがある。

どういう状況で重いかは設定にもよるし一概には言えないんだけど、思い出に残るつらかったシチュエーションは rubycomplete.vim の編集中……。

オリジナルの rubycomplete.vimVim script の中で if_ruby を使ってたり #get_completions がめっちゃ長かったりと重くなりそうな要素がいくらかあるので仕方無いと言えば仕方無いんだけど、ファイルサイズ自体はそれほどじゃない(Vim 8.0-324 時点での同梱版 rubycomplete.vim は 833行、24361バイト)。

こいつを開くたびに自動補完をオフにする、あるいはそのための autocmd の設定をするのは面倒だったので、自動補完なプラギンの使用自体を止めた。

ただし念の為に書いておくと、自動(でポップアップまでしてくれる)補完プラギン自体が駄目なわけではない。

よく知らない言語の勉強中や書き捨てファイルの編集中なんかには非常に役立つと思う。

ただまぁ、僕の場合は <C-X> な補完で十分だなぁと思ったわけです。

&include と &define に関して

とりあえず $VIMRUNTIME に移動して

grep -E 'include\s*=' **/*.vim

とか

grep -E 'define\s*=' **/*.vim

すると分かるんだけど、大抵のファイルタイプのデフォルト値はあんまり良くないんですよね。特に &define のほう。

&path は環境にもよるし、適宜頑張って設定する(か、バッファ毎にベタっと設定するか)しかないんだけど、上の2つはもっと頑張れるんじゃないかなぁと思ってて、色々試してみている。

例えば \@> (強欲な量指定子)を(適切に)使ったりすると検索対象が多い場合にいくらか速くなるような気がしている。

追記。

&defineは本来?マクロ定義の検索のためにあるんだけど、現在はマクロ定義がないようなファイルタイプも数多く存在していて、そのようなファイルタイプで[dとかi_CTRL-X_CTRL-Dを使わないのは勿体ないよなぁ、というスタンスです。