vimを使用しています。これを行うためのツールが組み込まれています。
予想通り、既に使用するように言っている7つの答えがありますgrep
。しかし、あなたがあなたの質問からあなたが使用していることに気づいた唯一の人であるようですvim
。そのため、内から使用できますが、の組み込みツールも使用できます。これはコマンドを介して呼び出されます。 grep
vim
vim
:vimgrep
「関数の呼び出しのために、現在のディレクトリにCソースファイルのすべてを検索するにはtoUpperCase()
1種類の」vim
コマンド
:vimgrep "\<toUpperCase\_s*(" *.c
結果の一致リストは、quickfixリストに自動的にロードされ、次のいずれかでアクセスできます(微妙な違いについてはオンラインヘルプを参照してください)
:copen
:cwin
関数の定義を見つけるのctags
は、それを呼び出すのではなく、ツールであり、Gilles
の回答で述べたように、:tjump
or :tselect
コマンドと組み合わせて使用します。
なぜ使用:vimgrep
?
オンラインヘルプ(:help grep
)にはいくつかの理由が列挙されていますが、ここでは説明しません。さらに、これらに、行動の比較:vimgrep
のそれとdietbuddha
の答えが。 dietbuddha
のコマンドラインgrep
は、個々のCソースファイルごとに個別のプロセスをフォークします。xargs
そのオーバーヘッドを削減するためにも使用していません。また、出力が終了したら、何らかの方法で出力を解析して、関連するソースファイルでテキストエディターを呼び出す必要があります。 :vimgrep
複数の追加プロセスを分岐させないため、結果を使用すること自体が単純です。結果のクイックフィックスリストのエントリの1つを選択するだけで、関連するソースファイルの関連する行にカーソルが自動的に配置されます。
実際、それはあなたが書いたのとまったく同じことをしますが、自動的に行われます。これは、まさにテキストエディターのアクションを自動化する方法です。手動でロードされたかのようにファイルをロードし、正規表現を検索し(既に他の場所で使用しているのと同じ正規表現構文を使用vim
)、一致する場所を記録してからファイルをアンロードします。