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 grepvon innen vim, können Sie auch verwenden , vims‘integrierte Tool. Dies wird über den :vimgrepBefehl aufgerufen .
Um "alle C-Quelldateien im aktuellen Verzeichnis nach Aufrufen der Funktion zu durchsuchen", geben Sie toUpperCase()den vimBefehl 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, ctagsist das Werkzeug, wie in der genannten Gilles‚s Antwort , in Verbindung mit der :tjumpoder :tselectBefehlen.
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 :vimgrepmit der dietbuddhaAntwort von . dietbuddhaDie Befehlszeile von gibt einen individuellen grepProzess für jede einzelne C-Quelldatei aus. Es wird nicht einmal eingesetzt, xargsum 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. :vimgrepFork 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.