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 -lParameter 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. !! -lfunktioniert nicht, weil es wird, ls tmp -lwas 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 ?? -lwo ??ist etwas, das den vorherigen Befehl wiederholt, aber -lzwischen dem ersten und dem zweiten Wort hinzufügt .
Nur um es klar zu machen, ls -l tmpist 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 0bedeutet erstes Wort, dh. der Befehl selbst. Natürlich können Sie dies auch tun, !!:0 -l !!:1wenn Sie nicht wiederholen möchten /tmp.
^ ^ -l ^welcher Austauschspacefürspace -l spaceoder^s^s -l^(ist aber auchls tmp -lpraktikabel)