it-swarm.com.de

Wie lösche ich die aktuelle Zeile im Terminal?

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

Zum Beispiel, wenn meine aktuelle Zeile/mein aktuelles Kommando sehr lang ist:

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

Gibt es einen Hotkey oder Befehl, um von oben zu gehen:

>

?

Normalerweise drücke ich die  Schlüssel, und wenn meine aktuelle Zeile eine brandneue in der Geschichte ist, das wird es löschen. Aber wenn ich meine Befehlsgeschichte über die  drücken und mit der Bearbeitung oder Verwendung dieser Befehle beginnen,  wird nur die Eingabeaufforderung auf den nächsten neuesten Befehl in der Geschichte ändern, so dass es hier nicht funktioniert, es sei denn, ich drücke  mehrmals.

688
triad

Sie können verwenden Ctrl+U zum Anfang klären.

Sie können verwenden Ctrl+W nur ein Wort löschen.

Sie können auch verwenden Ctrl+C abbrechen.

Wenn Sie den Verlauf behalten möchten, können Sie verwenden Alt+Shift+# um es zu kommentieren.


Bash Emacs Bearbeitungsmodus Spickzettel

1282
kev

Um alle Antworten zusammenzufassen:

  • Bereinigen Sie die Linie: Sie können verwenden Ctrl+U zum Anfang klären.
  • Bereinigen Sie die Linie: Ctrl+ECtrl+U um die aktuelle Leitung im Terminal zu löschen
  • Bereinigen Sie die Linie: Ctrl+ACtrl+K um die aktuelle Leitung im Terminal zu löschen
  • Brechen Sie den aktuellen Befehl/die aktuelle Zeile ab: Ctrl+C.
  • Rufen Sie den gelöschten Befehl auf: Ctrl+Y (dann Alt+Y)
  • Zum Zeilenanfang gehen: Ctrl+A
  • Zum Ende der Zeile gehen: Ctrl+E
  • Entfernen Sie die Wörter vorwärts, wenn Sie sich beispielsweise in der Mitte des Befehls befinden: Ctrl+K
  • Entfernen Sie die Zeichen links bis zum Wortanfang: Ctrl+W
  • So löschen Sie die gesamte Eingabeaufforderung: Ctrl + L
  • Zwischen Zeilenanfang und aktueller Cursorposition wechseln: Ctrl + XX
516
J4cK

Ich habe die vollständige Liste der Verknüpfungen:

  1. Ctrl+a Bewegen Sie den Cursor an den Zeilenanfang
  2. Ctrl+e Bewegen Sie den Cursor an das Zeilenende
  3. Ctrl+b Ein Zeichen zurückgehen
  4. Alt+b Gehen Sie ein Wort zurück
  5. Ctrl+f Gehe ein Zeichen vorwärts
  6. Alt+f Gehe ein Wort vorwärts
  7. Ctrl+d Aktuelles Zeichen löschen
  8. Ctrl+w Schneiden Sie das letzte Wort
  9. Ctrl+k Alles nach dem Cursor ausschneiden
  10. Alt+d Word nach dem Cursor ausschneiden
  11. Alt+w Word vor dem Cursor ausschneiden
  12. Ctrl+y Fügen Sie den zuletzt gelöschten Befehl ein
  13. Ctrl+_ Rückgängig machen
  14. Ctrl+u Alles vor dem Cursor abschneiden
  15. Ctrl+xx Zwischen erster und aktueller Position wechseln
  16. Ctrl+l Löschen Sie das Terminal
  17. Ctrl+c Brechen Sie den Befehl ab
  18. Ctrl+r Suchbefehl im Verlauf - Geben Sie den Suchbegriff ein
  19. Ctrl+j Beenden Sie die Suche am aktuellen Verlaufseintrag
  20. Ctrl+g Brechen Sie die Suche ab und stellen Sie die ursprüngliche Zeile wieder her
  21. Ctrl+n Nächster Befehl aus der Historie
  22. Ctrl+p vorheriger Befehl aus der Geschichte
134
tharunkumar

Ctrl+ACtrl+K um die aktuelle Leitung im Terminal zu löschen. Sie können es dann mit abrufen Ctrl+Y wenn Sie brauchen.

22
Spyros Mandekis

oder wenn Sie den vi-Modus verwenden, drücken Sie Esc gefolgt von cc

um zurück zu bekommen, was du gerade gelöscht hast, Esc und dann p :)

15
bluTaz

Eine Alternative zu Ctrl+ACtrl+K ist Ctrl+ECtrl+U.

10

Ich bin mir nicht sicher, ob du es liebst, aber ich benutze Ctrl+A (um die Zeile zu beginnen) und Ctrl+K (um die Zeile zu löschen) Ich war mit diesen Befehlen von Emacs vertraut und habe sie versehentlich herausgefunden.

10
Muhammet Can
  • Ctrl+u: verschieben bis zum Zeilenanfang in einen Ringpuffer
  • Ctrl+k: verschieben bis zum Ende Ihrer Zeile in einen Ringpuffer
  • Ctrl+w: Verschieben Zeichen und (mehrere) Wörter von Ihrem Cursor in einen Ringpuffer

  • Ctrl+y: letzten eintrag aus deinem ringpuffer einfügen und dann kannst du benutzen Alt+y um durch Ihren Ringpuffer zu drehen. Mehrmals drücken, um zum "vorherigen" Eintrag im Ringpuffer zurückzukehren.

6
Cyrus

CTRL+R und beginnen Sie mit der Eingabe, um nach vorherigen Befehlen im Verlauf zu suchen. Zeigt volle Linien.
CTRL+R nochmal zum radeln.

4
Daniel

Zur Liste hinzufügen:

Drücken Sie im Emacs-Modus Esc, gefolgt von R, löscht die gesamte Zeile.

Ich weiß nicht warum, ich finde es einfach. Vielleicht wird es nicht zum Löschen von Zeilen verwendet, hat aber zufällig den gleichen Effekt. Wenn jemand weiß, bitte sag es mir, danke :)

Funktioniert in Bash, aber nicht in Fish.

2
PickBoy

So reinigen Sie die gesamte Linie (auf zwei verschiedene Arten):

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

Um die gesamte Zeile zu löschen, unabhängig davon, wo sich der Cursor befindet, können Sie den Befehl kill-whole-line verwenden, der jedoch standardmäßig nicht gebunden ist. Es kann zum Beispiel gebunden werden an Ctrl+Alt+K durch Einfügen

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

in die Readline-Init-Datei (normalerweise ~/.inputrc).

Verschiedene Bemerkungen:

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

    bind -P | grep '\\e\\C-k'
    
  • Der Name der Readline-Init-Datei stammt aus der Shell-Variablen INPUTRC. Ist dies nicht der Fall, lautet die Standardeinstellung ~/.inputrc oder (falls nicht vorhanden) /etc/inputrc. Beachten Sie, dass, wenn Sie ~/.inputrc haben, /etc/inputrc ignoriert wird.
  • Um Ihre Readline-Init-Datei neu zu laden, können Sie verwenden Ctrl+XCtrl+R.
  • Links zu relevanten manuellen Abschnitten:
2
Benjamin W.

Ctrl + W wird das Wort auf der linken Seite löschen.

2
bendangelo