1180 Stimmen

Wie kann ich die aktuelle Zeile im Terminal löschen?

Wenn ich ein Terminal verwende und eine Textzeile für einen Befehl eingebe, gibt es dann einen Hotkey oder eine Möglichkeit, diese Zeile zu löschen?

Zum Beispiel, wenn meine aktuelle Zeile/Befehl ist etwas wirklich lang wie:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>

Gibt es eine Tastenkombination oder einen Befehl, um von dem oben genannten zu wechseln:

>

?

Normalerweise drücke ich die Taste, und wenn meine aktuelle Zeile eine brandneue in der Historie ist, wird sie dadurch gelöscht. Aber wenn ich meinen Befehlsverlauf mit der Taste Taste und beginnen Sie mit der Bearbeitung oder der Verwendung dieser Befehle, ändert die Eingabeaufforderung nur zum nächstjüngeren Befehl in der Historie, also funktioniert es hier nicht, außer ich drücke mehrere Male.

11 Stimmen

Tastenkombinationen, um in der Bash-Kommandozeile schneller voranzukommen Diese Seite ist anschaulicher und erklärt meiner Meinung nach besser

2 Stimmen

1 Stimmen

7voto

Benjamin W. Punkte 37771

Um die gesamte Zeile zu löschen, egal wo sich der Cursor befindet, können Sie die kill-whole-line Befehl, ist aber standardmäßig ungebunden. Er kann z. B. gebunden werden an, Ctrl + Alt + K durch Einfügen

"\e\C-k": kill-whole-line

in Ihre Readline-Init-Datei (üblicherweise ~/.inputrc ).

Verschiedene Bemerkungen:

  • Um zu vermeiden, dass Sie versehentlich eine Tastenfolge neu zuweisen, die bereits für etwas anderes verwendet wird, können Sie alle Ihre Bindungen mit bind -P . Prüfen Sie, ob die vorgeschlagene Bindung mit

    bind -P | grep '\\e\\C-k'
  • Der Name der Readline-Init-Datei wird aus der Shell-Variablen INPUTRC . Wenn sie nicht gesetzt ist, ist der Standardwert ~/.inputrc , oder (falls es das nicht gibt) /etc/inputrc . Beachten Sie, dass Sie, wenn Sie ~/.inputrc , /etc/inputrc werden ignoriert.

  • Um Ihre Readline-Init-Datei neu zu laden, können Sie Ctrl + X Ctrl + R .

  • Links zu relevanten Abschnitten des Handbuchs:

4voto

Daniel Punkte 41

CTRL + R und beginnen Sie zu tippen, um nach früheren Befehlen im Verlauf zu suchen. Zeigt ganze Zeilen an.
CTRL + R erneut, um den Zyklus zu starten.

4voto

Jose1755 Punkte 290

Um die gesamte Leitung zu reinigen (2 verschiedene Möglichkeiten):

  • Home , Ctrl + K
  • End , Ctrl + U

3voto

PickBoy Punkte 1194

Zur Liste hinzufügen:

Im Emacs-Modus, drücken Sie Esc gefolgt von R wird die gesamte Zeile gelöscht.

Ich weiß nicht warum, ich habe es einfach zufällig gefunden. Vielleicht ist es nicht für Zeile löschen verwendet, aber zufällig die gleiche Wirkung haben. Wenn jemand weiß, sagen Sie mir bitte, danke :)

Funktioniert in Bash, aber nicht in Fish.

2 Stimmen

Es ist die revert-line Befehl readline: "Alle an dieser Zeile vorgenommenen Änderungen rückgängig machen". Er ist standardmäßig gebunden an M-r (Meta-R), was sowohl Alt-R als auch Esc R sein kann. Das bedeutet, dass die Zeile nicht wirklich gelöscht wird, sondern nur, wenn sie zu Beginn leer war; wenn Sie in Ihrer Befehlshistorie zurückblättern und einen Befehl ändern, geben Sie dann revert-line wird wieder der ursprüngliche Befehl verwendet und die Zeile nicht gelöscht.

3voto

Ctrl + Alt + Backspace zum Löschen der rückwärtigen Wörter am Ende der Zeile

Ctrl + Delete zum Löschen der Vorwärtswörter am Anfang der Zeile

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X