Betrachten Sie die folgende Bash-Eingabeaufforderung, wobei ^
der Ort der Eingabeaufforderung angegeben ist:
$ git commit -am "[bug 123456] Do this and that with the bug"
^
Angenommen, ich möchte erneut mit einer anderen Commit-Nachricht einen Commit für denselben Fehler ausführen. Gibt es eine Möglichkeit, den Text von der Cursorposition bis zum Zeilenende zu löschen?
command-line
bash
Adam Matan
quelle
quelle
Brexit - the UK leaves Europe
- U löscht bis zum Anfang und K bis zum Ende.Dies hängt davon ab, ob Sie in Ihrer Shell den Bearbeitungsmodus vi (
set -o vi
) oder emacs (set -o emacs
) verwenden.Standardmäßig verwendet Ihre Shell standardmäßig den Emacs-Bearbeitungsmodus.
Im Emacs-Modus kann das Löschen bis zum Zeilenende mit dem Befehl ctrl- ausgeführt werden k.
Wenn Sie jedoch zufällig den Bearbeitungsmodus vi in Ihrer Befehlsshell verwenden, können Sie dasselbe Ergebnis erzielen, indem Sie Folgendes eingeben Esc(wodurch Sie in den Befehlsmodus versetzt werden), gefolgt von d- $(wenn Sie die gesamte Zeile löschen möchten, geben Sie ein dd).
Wenn Sie sich nicht sicher sind, welchen Bearbeitungsmodus Sie derzeit in Ihrer Shell verwenden, geben Sie den Befehl
set -o
über die Befehlszeile ein, und Sie können feststellen, welchen Bearbeitungsmodus Sie derzeit verwenden:Um den Bearbeitungsmodus für die Befehlszeile zu ändern, geben Sie einfach Folgendes ein:
oder
quelle
K
steht das für kill (die Zeile, die an der Cursorposition beginnt).D
genauso wied$
Falls Sie nur mit Zsh und Bash vertraut sind, finden Sie hier die entsprechenden Tastenzuordnungen, die Sie (möglicherweise) benötigen:
bash
zsh
andere wichtige Informationen
So rufen Sie eine Liste der Tastenzuordnungen ab:
quelle
"^k"
für Bash nicht für Control + K sein?"\C-k"