Du benutzt Vim. Sie haben ein eingebautes Tool, um dies zu tun.
Vorhersehbar gibt es sieben Antworten, die bereits zur Verwendung sagen grep
. Aber ich scheine die einzige Person zu sein, die von Ihrer Frage bemerkt hat, dass Sie verwenden vim
. Als solches, wenn auch Sie können Verwendung grep
von innen vim
, können Sie auch verwenden , vim
s‘integrierte Tool. Dies wird über den :vimgrep
Befehl aufgerufen .
Um "alle C-Quelldateien im aktuellen Verzeichnis nach Aufrufen der Funktion zu durchsuchen", geben Sie toUpperCase()
den vim
Befehl ein
:vimgrep "\<toUpperCase\_s*(" *.c
Die resultierende Liste der Übereinstimmungen wird automatisch in die Quickfix-Liste geladen, auf die mit einer der folgenden Optionen zugegriffen werden kann (in der Online-Hilfe finden Sie den subtilen Unterschied).
:copen
:cwin
Um die Funktion zu finden Definition , anstatt Anrufe es, ctags
ist das Werkzeug, wie in der genannten Gilles
‚s Antwort , in Verbindung mit der :tjump
oder :tselect
Befehlen.
Warum benutzen :vimgrep
?
Die Online-Hilfe ( :help grep
) zählt einige der Gründe auf, auf die ich hier nicht näher eingehen möchte. Vergleichen Sie außerdem die Aktion von :vimgrep
mit der dietbuddha
Antwort von . dietbuddha
Die Befehlszeile von gibt einen individuellen grep
Prozess für jede einzelne C-Quelldatei aus. Es wird nicht einmal eingesetzt, xargs
um diesen Aufwand zu reduzieren. Und Sie müssen die Ausgabe noch irgendwie analysieren, um Ihren Texteditor für die relevanten Quelldateien aufzurufen, sobald er fertig ist. :vimgrep
Fork nicht mehrere zusätzliche Prozesse überhaupt, und mit dem Ergebnis ist die Einfachheit selbst. Das bloße Auswählen eines der Einträge in der resultierenden Quickfix-Liste positioniert den Cursor automatisch in der entsprechenden Zeile der entsprechenden Quelldatei.
In der Tat macht es genau das, was Sie geschrieben haben, was Sie von Hand tun würden, außer automatisch. Es ist die automatisierte Methode, um genau diese Texteditor-Aktionen auszuführen. Es lädt die Datei wie von Hand, sucht nach einem regulären Ausdruck (unter Verwendung derselben Syntax für reguläre Ausdrücke, die Sie bereits an anderer Stelle verwenden vim
), zeichnet die Stellen auf, an denen Übereinstimmungen auftreten, und entlädt die Datei.