ソースコードのベースディレクトリからvimを使用しています。単一のファイルを編集するときに、このディレクトリ(およびサブディレクトリ)内のすべてのファイルのすべての単語をオートコンプリートで考慮してもらいたいと思います。
3 に答える
完了は'complete'
オプションによって制御されます。フラグを使用k
すると、Vimスキャンファイルを作成できます。ワイルド**
カードは、サブディレクトリへの再帰下降を表します。出来上がり:
:set complete=k**/*
他のデフォルトの場所(他のバッファ、含まれているファイルなど)を保持したい場合は、を使用:set complete+=
して追加します。
または、これはデフォルトでは遅すぎる可能性があるため、「辞書」オプションを使用してCtrl-XCtrl-K補完を使用できます。
:set dictionary=**/*
:argadd **/*
これにより、すべてのファイルが再帰的にバッファーにロードされ、完了時にそれらが考慮されます。これにより、バイナリファイルやCVSディレクトリ内のファイルなど、追加したくないファイルを含むすべてのファイルが読み込まれることに注意してください。以下のようなよりきめの細かいグロブは良い考えかもしれません。
:argadd **/*.cpp
はるかに優れたアプローチは、 ExuberantCTagsを使用してディレクトリシステムにタグファイルを生成することだと思います。
手始めに、次のコマンドtags
を使用してソースのルートにファイルを作成します。
ctags-R。
これはあなたが望む以上のものを見つけるかもしれませんが、あなたはさらなるコマンドラインオプションでそれを調整することができます。
このファイルを参照するようにオプションを設定するtags
か(「タグ」がデフォルトの名前です)、またはを使用set tags=./tags;/
して、最初に見つかったタグファイルまでディレクトリツリーを検索します。上向き検索:help file-searching
の構文を理解するには、を参照してください。;/
最後に、「t」が完全なオプションに含まれていることを確認してください。デフォルトでありますが、で確認してくださいset complete?
。そこにない場合は、そこにset complete+=t
置きます。
'complete'
CTRL_Y(はい、完了を受け入れる)またはCTRL_N(いいえ、完了を拒否)を入力するか、通常の入力を続けると検索が停止しますが、ディスクアクセスが煩わしいため、個人的にオプションから「i」と「d」を削除します。含まれているすべてのファイルがタグファイルに含まれている場合は、すぐに完了を見つけることができます。