8

Vimでは、別のバッファーで編集しているファイルのファイル名を完成させたいという状況に陥ることがよくあります。

foo.cppとbar.hの2つのバッファーを開いているとします。foo.cppで、「bar.h」を#includeする必要があります。私はこのようなことをしたい:

foo.cpp

#include "b<complete filename to bar.h>

Vimのドキュメントによると、CTRL + x CTRL + fを使用してファイル名を補完することができますが、それは、bar.hの親ディレクトリと同等のCWDを持つVimに依存しているようです。それが常に可能であるとは限りません。

別のバッファーでbar.hを開いている場合、バッファー名に基づいてオートコンプリートすることはできますか?

4

1 に答える 1

7

良いアイデア; 候補をロードされたバッファに制限すると、候補のリストが絞り込まれ、ファイルパスのどこにでも一致するようになります。

これを取得するには、カスタム挿入モード補完を実装する必要があります。ファイル名は、からまでのすべてのバッファ番号を反復処理することで取得できbufname()ます。これをBufNameCompleteプラグインとして実装しました。私はそれがあなたのニーズ(そして私のもの)に合うことを願っています。1bufnr('$')

于 2012-11-16T13:16:00.337 に答える