Frage

Zur Veranschaulichung hier ist, wie es von der Kommandozeile zu tun:

vim `grep "hello" * -Rl`

Es öffnet sich vim mit allen Dateien, die „Hallo“ in ihnen (-l gibt die Dateinamen allein) haben. Ich will das Gleiche tun, sondern von innen vim. Konzeptionell, so etwas wie dies (was nicht funktioniert):

:args !grep "hello" * -Rl

Ich bin offen für ganz unterschiedliche Ansätze, dies zu erreichen; Ich würde so, wie es auf einer Linie zu sein (so ist es leicht zu bearbeiten und Redo).


Die Antwort ist einfach Backtick zu verwenden - aber mit einem Schlüssel Vorbehalt Die unten nicht für mich arbeiten, weil die Zitate um hello:

:args `grep "hello" * -Rl`

Aber es funktioniert, wenn ich sie entfernen oder die Anführungszeichen entkommen:

:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`

(dies wurde in den Kommentaren nach Chaos' Antwort begraben - ich ihnen hier gegeben, um sie besser sichtbar zu machen, falls jemand dieses Problem hat)

War es hilfreich?

Lösung

Nun, das funktioniert für mich:

:args `grep -Rl "hello" *`

Beim Laufen vim 7.0.305.

Andere Tipps

Versuchen Sie, den args Befehl:

:ar[gs] `grep -Rl "hello" .`

Wenn die Backticks sind nicht für Sie arbeiten, sind Sie verwenden Sie verwenden eine aktuelle Version von vim?

:version
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top