

例えば`~/hoge/fuga/piyo` にアクセスしたいとして。  
Emacsだと`C-x C-f`して「`~/h/f/p`」と入力してTab押すと「`~/hoge/fuga/piyo`」と補完してくれます。  
vimでこれをやる方法はあるでしょうか？  
できればプラグインとかじゃなくてvimrcに数行書くだけでこれができるようになると最高です。


CC BY-SA 3.0
2015-06-24T14:50:52.833
11693
2015-06-25T01:30:00.127
10277
question
vim
vimでファイルパスを動的に補完したい


Emacsの`C-x C-f`相当ということなので、Vimの`:e`コマンドでファイル名を指定する場合で説明させていただきます。(`:h :edit_f`)

> 「~/h/f/p」と入力してTab押すと「~/hoge/fuga/piyo」と補完してくれます。

近いのは `~/h*/f*/p` と入力してTab押下ですかね。

あと、ディレクトリ名を1つずつ補完する方法を説明します。

  1. `:e ~/h`と入力したあと`:e ~/hoge/`になるまで`Tab`を押す。
  2. `:e ~/hoge/`の状態で`f`を押して`:e ~/hoge/fuga/`になるまで`Tab`を押す。
  3. `:e ~/hoge/fuga/`の状態で`p`を押して`:e ~/hoge/fuga/piyo/`になるまで`Tab`を押す。
  4. `:e ~/hoge/fuga/piyo/`の状態で`ctrl-]`を押して補完を確定させる。(`:h c_ctrl-]`)
  5. あとは`Tab`や`ctrl-d`を押したり、ファイル名の一部を入力したりを繰り返して開きたいファイルを選ぶ。(`:h c_<Tab>`, `:h c_ctrl-d`)
  6. `Enter`を押してファイル編集開始。

逆にファイル名しか分かっていない場合はディレクトリツリー全体の検索をおこなう `**` を使うと便利です。(`:h starstar`)  
`:e ~/**/file`等と入力して`Tab`や`ctrl-d`を押します。  
(ディレクトリやファイルが多すぎると時間が掛かります。そのときは`ctrl-c`でキャンセルして下さい)


CC BY-SA 3.0
2015-06-25T01:30:00.127
11701
2015-06-25T01:30:00.127
2687
11693
answer