Dienstprogramm zum Durchsuchen der Dateiinhalte, zum Öffnen und zur entsprechenden Zeile

315
user137369

Ich bin auf der Suche nach einem Werkzeug, das einen Suchstring und einige Set-Dateien gegeben hat, jeden von ihnen nach dem String durchsuchen würde. Wenn es gefunden wird, öffnen Sie die Datei und gehen zu dieser Zeile.

Vielleicht könnte man das mit dem folgenden Ausschnitt besser erklären

search() { for file in $(find . -type f); do contains=$(cat "$" | grep -n "$1") [[ -n "$" ]] && echo "$" done } 

Dies ist eine vereinfachte Version - es wird nur der Dateiname der übereinstimmenden Dateien gedruckt und jede Datei im aktuellen Verzeichnis durchsucht, aber es funktioniert. Wir könnten es erweitern und zur entsprechenden Zeile gehen, indem wir etwas in die Bedingung einfügen

line=$(echo "$" | sed -E 's/^(\d*):.*/\1/') vim -c "$" "$" 

Das hat jedoch große Mängel, insbesondere bei der Suche nach Code.

Gibt es ein Werkzeug, um diese Aufgabe zu erfüllen?

0
** Vim ** s [plugin] (https://github.com/mileszs/ack.vim) für ** Ack ** vielleicht? Cristian Ciupitu vor 9 Jahren 0
Das passt sehr gut, ja. Vielen Dank. Möchten Sie es als Antwort hinzufügen, damit ich es akzeptieren kann? user137369 vor 9 Jahren 0

1 Antwort auf die Frage

1
Cristian Ciupitu

Ich empfehle, mit der Vim - Plugin für Ack - ack.vim .

ack.vim plugin searching for "package" in the source code of Ansible

(Der Screencast wurde mit byzanz mit einem Wrapper von Ask Ubuntu erstellt und mit Gifsicle optimiert. )