Angenommen, ich habe einen Befehl im Terminal 'mv * .jpg .. \ photos' eingegeben, und während ich tippe, wird mir klar, dass ich diesen Befehl überhaupt nicht mehr ausführen möchte. Ich möchte nur die gesamte Aussage löschen. Ich möchte nicht den gesamten Bildschirm löschen oder den Bash-Verlauf löschen, sondern nur die aktuelle Zeile abbrechen und löschen.
Gibt es eine Tastenkombination oder muss ich tatsächlich jedes Zeichen löschen?
Viele Programme, die darauf warten, dass Sie eine Befehlszeile eingeben und diese dann ausführen, einschließlich Bash, verwenden Ctrl+ , um Czu bedeuten, dass Sie die aktuelle Aufgabe abbrechen und zur Hauptaufforderung zurückkehren.
Einige Programme, einschließlich bash, verwenden Ctrl+ U( Befehl zum Löschen vom Terminal in OS X ), um "den Zeilenanfang bis zum Cursor zu löschen" (oder "die gesamte Zeile zu löschen").
In bash sind folgende Unterschiede zwischen Ctrl+ Cund Ctrl+ zu beobachten U:
Manchmal möchten Sie einen Befehl nicht mehr eingeben, sondern ihn in den Shell-Verlauf eingeben, um ihn später auszuführen. Ein nützlicher Trick besteht darin, ein
#
am Anfang der Zeile einzufügen und auszuführen: Da die Zeile jetzt ein Kommentar ist, wird nichts mehr getan. In der Bash gibt es eine Ein-Tasten-Verknüpfung: Alt+ #.quelle
Es gibt eine
readline
Funktion, die wahrscheinlich nicht an einen Tastenanschlag gebunden ist, der aufgerufenkill-whole-line
wird und die gesamte Zeile abbricht , anstatt nur den Teil vor dem Cursor abzubrechen (unix-line-discard
was etwas falsch ist und an Ctrl- gebunden ist u).Sie können dies an jeden verfügbaren Tastendruck binden. Ich mag ShiftAlt- Uda es eine verwandte Funktion ist. Dieser Tastenanschlag kann gebunden sein,
do-lowercase-version
was bedeutet, dass er (in diesem Fallupcase-word
) unabhängig von der nicht verschobenen Version ausgeführt wird . Da wir dazu nicht wirklich zwei Schlüssel benötigen, verwenden wir diesen.Sie können es an der Befehlszeile ausprobieren, indem Sie die Bindung folgendermaßen erstellen:
oder machen Sie es dauerhaft, indem Sie diese Zeile in Ihre
~/.inputrc
Datei einfügen:Um ein Ctrl- uoder ShiftAlt- U(oder einen Vorgang, der rückgängig gemacht werden kann) rückgängig zu machen, drücken Sie Ctrl- Shift- _(Unterstrich) oder Ctrl- x Ctrl- u(zwei Tastenanschläge). Oder Sie können in (yank) einfügen zurück , was Sie durch Drücken getötet Ctrl- ydie wiederholt werden können , wenn Sie mehrere Kopien dieses Textes wollen.
By the way, wenn Sie Text vom Cursor bis zum Ende der Linie töten wollen, können Sie drücken Ctrl- k. Anstatt die oben beschriebene Bindung auszuführen, können Sie eine ganze Zeile durch Drücken von Ctrl- u Ctrl- beenden k. Nur der Teil, der durch den zweiten dieser Tastenanschläge getötet wurde, wird im Kill-Puffer gespeichert. Sie können jedoch noch zweimal rückgängig machen, um beide wiederherzustellen.
quelle