vimのファイル名補完
vimでファイル名をタブ補完する時、bashの補完と感覚が違うので使いづらい。
タブ補完はwildmodeで動きを設定することができる。
wildmodeは以下の値を設定できる
値 | 説明 |
---|---|
"" | 最初のマッチのみ補完 |
full | TABを押すごとに次のマッチを補完する。wildmenuが有効ならwildmenuを開始する |
longest | 共通する最長の部分まで補完する |
list | マッチするものをリスト表示する |
longest:full | longestと同じだが、wildmenuが有効ならwildmenuを開始する |
list:full | マッチするものをリスト表示しつつ、TABを押すごとに次のマッチを補完 |
list:longest | マッチするものをリスト表示しつつ、共通する最長の部分まで補完 |
言葉で説明してもわかりづらいので例示する。
$ ls sample1 sample2 sample3
というような状況で、
:e sa<TAB>
と入力したとする。
空文字だと、sample1を補完し、何度TABを押してもそれ以上補完しない
fullだと、TABを押すごとにsample1,sample2,sample3,sample1,...と補完する
longestだと、sampleまで補完して止まる
listだと、sample1,sample2,sample3をリスト表示し、補完は行わない。
list:fullだと、sample1,sample2,sample3をリスト表示し、sample1に補完する。さらにTABを押すごとに、sample2,sample3,sample1,...と補完する
list:longestだと、sample1,sample2,sample3をリスト表示し、sampleまで補完する。
さらに、カンマ区切ることで、タブの回数により動作を変更することができる。最大で4回目まで変更。
例えば、以下のようにlongest,listと設定すると、bashの補完に近く、sampleまで補完して、もう一度TABを押すと、sample1,sample2,sample3をタブ補完する。これが一番自分には使いやすかった。
set wildmode=longest,full
あと、fullとlongest:fullにあるwildmenuというのはヴィジュアルに候補表示をするものである。以下のようにwildmenuをオンにした後に、wildmodeをfullかlongest:fullにすると使えるのだが、自分にはイマイチ使いづらかった。
set wildmenu set wildmode=full