Antworten:
Dies hängt von Ihrer Shell und ihrem aktiven Befehlszeilen-Bearbeitungsmodus ab.
set -o emacs
Verwenden Sie für eine Shell mit Emacs-Befehlszeilen-Bearbeitungsmodus ( in einigen Shells) Alt+D(dies funktioniert unter macOS aus irgendeinem Grund nicht, sondern druckt das Zeichen ∂
, verwenden Sie Escdstattdessen).
set -o vi
Verwenden Sie für eine Shell mit Vi-Befehlszeilenbearbeitungsmodus ( in einigen Shells) Escdw(dies funktioniert auch unter macOS).
Löscht für die Disziplin tty line ^W
das vorherige durch Leerzeichen getrennte Wort .
Im vi
Editor im Einfügemodus, ^W
löscht rückwärts zu Beginn der ersten Sequenz von alnums oder nicht-alnums (auf foo-+-bar.. baz
, es zuerst Löschungen baz
, dann ..
, dann bar
, dann -+-
, dann foo
).
Löscht im emacs
Editor ^W
von der Cursorposition bis zur Markierung (der, mit der Sie festgelegt haben Ctrl+Space).
Einige Zeileneditoren wie readline
(verwendet von bash
, gdb
...), zle
(verwendet von zsh
), verhalten sich pdksh
im vi
Modus wie vi
in dieser Hinsicht und im emacs
Modus wie die tty-Zeilendisziplin (nicht emacs
).
libedit
(verwendet von BSD Schalen oder (optional) dash
) tcsh
, AT & T ksh
, in emacs
Modus verhalten sich wie in emacs
dem ^W
Löschungen auf die Markierung (zunächst am Anfang des Puffers).
Um ein Wort vorwärts zu löschen, vi
tun Sie dies im Editor im Befehlsmodus ( normal ), dw
indem Sie bis zum Anfang der nächsten Folge von Alnums oder Nicht-Alnums (oder bis zum Ende der Zeile) dW
löschen und bis zum löschen nächste Folge von Nicht-Leerzeichen (der Anhänger der ^W
Disziplin der tty-Linie).
Im emacs
Zeileneditor, Meta-Dwürde zum Löschen Ende der nächsten Folge von alnum Zeichen. Die Wortbewegungsoperatoren ( Meta-B, Meta-F) verhalten sich ähnlich.
Befehlszeileneditoren vi
verhalten sich im Modus wie vi
, aber im emacs
Modus haben Sie zwei Hauptschulen: die tcsh
Schule und die ksh
Schule.
Die ksh
Schule ( readline
, ksh
, yash
) verhält sich meist wie emacs
( fish
s Verhalten in etwas anders ist , wie es behandelt nicht-alnum, Nicht-Leerzeichen in beide emacs
und vi
Modus).
In der tcsh
Schule ( tcsh
, libedit
, zsh
) werden auf Wort Bewegungen basieren Leerzeichen getrennte Wörter sind so mit dem tty Linie Disziplin konsequent ^W
in dieser Hinsicht.
In zsh
ist das Verhalten mit verschiedenen Wortstilen für alle Wortbewegungs-Widgets anpassbar .
Für readline
, können Sie die bekommen tcsh
Schule (und haben Meta-Ddie gleiche Art von Wort zu löschen , wie der Ctrl-WFall ist) , indem zu Ihrem ~/.inputrc
:
set keymap vi-move
"\e[EMACS~": emacs-editing-mode
set keymap emacs
"\e[VI~": vi-movement-mode
"\ed": "\e[VI~dW\e[EMACS~"
"\ef": vi-fWord
"\eb": vi-bWord
Oder richten Sie sich andererseits ^W
an den anderen Wortbewegungs-Widgets aus (verhalten Sie sich wie Meta-Backscape) mit:
set keymap emacs
"\C-W": backward-kill-word
Was der MetaSchlüssel ist, finden Sie dort .
Versuchen Sie unter Linux Ctrl+k
zu löschen, wo sich der Cursor am Ende des Wortes befindet.
Im Folgenden sind einige andere Verknüpfungen aufgeführt (funktioniert unter Linux):
Ctrl+e
-> Nimmt den Cursor am Ende des Wortes.Ctrl+t
-> Ändern Sie die Position der Alphabete.Ctrl+y
-> fügt dem aktuellen Wort den Postfix "hh" hinzu.Ctrl+u
-> Löscht die gesamte Zeile.Ctrl+o
-> Funktioniert genauso wie die Eingabetaste.Ctrl+p
-> Funktioniert genauso wie die Aufwärtspfeiltaste.Ctrl+a
-> Bringt den Cursor an die Startposition des Befehls.Ctrl+d
-> Schließt das Terminal.Ctrl+f
-> Bewegt den Cursor um ein Zeichen vorwärts.Ctrl+h
-> Funktioniert genauso wie die Rücktaste.Ctrl+j
-> Funktioniert genauso wie die Eingabetaste.Ctrl+m
-> Funktioniert genauso wie die Eingabetaste.Ctrl+b
-> Funktioniert genauso wie die Rechtspfeiltaste. 14 Ctrl+4
-> Löscht das WortCtrl+k
wird bis zum Ende der Zeile gelöscht . Ctrl+u
löscht die gesamte Zeile (wenn sich der Cursor am Ende befindet). Ctrl+d
sendet EOF. Ctrl+e
geht bis zum Ende der Zeile usw.
bash
in -vi
Modus können Sie verwenden ,dW
diejenigen löschen