Ich weiß , wie ein Befehl wiederholen und mehr Text , nachdem er hinzu mit !!
etwa so:
ls -l
!! tmp
Die zweite Zeile wird erweitert zu ls -l tmp
.
Aber was ist, wenn ich dem Befehl zwischen den Wörtern Parameter hinzufügen möchte? Zum Beispiel, wenn ich Folgendes getan habe:
ls tmp
... dann möchte ich oft den -l
Parameter zum Befehl hinzufügen , aber nicht das Ganze erneut eingeben oder nach oben drücken und die Pfeiltasten verwenden, um den Cursor auf die richtige Stelle zu setzen. !! -l
funktioniert nicht, weil es wird, ls tmp -l
was nicht gültig ist. (In der Praxis ist der Befehl viel länger als das einfache Beispiel, das ich hier verwendet habe.)
Mit anderen Worten, ich suche nach etwas wie ?? -l
wo ??
ist etwas, das den vorherigen Befehl wiederholt, aber -l
zwischen dem ersten und dem zweiten Wort hinzufügt .
Nur um es klar zu machen, ls -l tmp
ist nur ein vereinfachtes Beispiel. Der reale Anwendungsfall ist näher an so etwas wie /very/long/path/to/very-long-command --with=a --very=long --parameter=list
.
!!:0 -l /tmp
. Hier 0
bedeutet erstes Wort, dh. der Befehl selbst. Natürlich können Sie dies auch tun, !!:0 -l !!:1
wenn Sie nicht wiederholen möchten /tmp
.
^ ^ -l ^
welcher Austauschspace
fürspace -l space
oder^s^s -l^
(ist aber auchls tmp -l
praktikabel)