in vim, wie setzt man "args" auf das ergebnis eines "grep -l"?

Um dies zu veranschaulichen, gehen Sie wie folgt von der Befehlszeile aus vor:

<code>vim `grep "hello" * -Rl`
</code>

Dies öffnet vim mit allen Dateien, die "Hallo" enthalten (-l gibt nur die Dateinamen an). Ich möchte dasselbe tun, aber von innen heraus. Konzeptionell so etwas (was nicht funktioniert):

<code>:args !grep "hello" * -Rl
</code>

Ich bin offen für ganz andere Ansätze, um dies zu erreichen. Ich möchte nur, dass es in einer Zeile steht (so dass es einfach zu bearbeiten und zu wiederholen ist).

Die Antwort ist, einfach Backticks zu verwenden -aber mit einer Schlüsselbedingung! Das untenstehende funktioniert bei mir nicht, wegen derZitate umhello:

<code>:args `grep "hello" * -Rl`
</code>

Aber es funktioniert, wenn ich sie entferne oder den Anführungszeichen entkomme:

<code>:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`
</code>

(Dies wurde in den Kommentaren nach der Antwort des Chaos begraben. Ich habe sie hier hinzugefügt, um sie sichtbarer zu machen, falls jemand anderes dieses Problem hatte.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage