Nehmen wir zum Beispiel an, ich hätte es getan
:let foo=pattern
und jetzt möchte ich ausführen, Ggrep patter
aber Variable foo
anstelle der Literalzeichenfolge verwenden patter
.
:echo foo
Ausgänge pattern
, aber
:Ggrep foo
sucht nur nach foo
AKTUALISIEREN:
Erstellen Sie eine Befehlsfolge und führen Sie sie dann aus: Die Ausführung ist keine Lösung, sondern ein Hack. Und es bricht mit nicht trivialen Variablenwerten.
Ggrep
(Hauptstadt G?)?Antworten:
Es geht nicht um Variablen, aber vielleicht kann der Befehl vim abbreviate helfen. Versuchen Sie es über die Befehlszeile:
Dann
Es wird 'foo' zu Ihrem 'Muster' vervollständigen.
quelle
echo foo
. Opps,echo pattern
die keine Variable ist. Dies ist ein Hack und eine Fehlleitung.wie wäre es mit:
quelle
let xyz = tabpagenr()
danntabnext xyz
. Die Skriptsprache von Vim ist ebenso fehlerhaft wie die modale Umgebung fehlerfrei.Wenn Ihnen die
:exe
Lösung nicht gefällt , können Sie den Inhalt einer Variablen mithilfe des=
Ausdrucksregisters in die Befehlszeile "einlesen" . Geben Sie beispielsweise ein und drücken Sie:Ggrep
dann Ctrl- rund geben Sie dann ein=foo
und drücken Sie Enter. Angenommen, die Variablefoo
enthält "Muster", sollte Ihre Befehlszeile nun wie folgt aussehen:Dies hat den Vorteil, dass Sie den tatsächlich ausgeführten Befehl sehen und sogar ändern können, bevor Sie Enterein zweites Mal drücken .
Sehen:
quelle