Ich mache Ctrl+W
im Mac-Terminal, um ein Wort zu löschen (löscht von der Stelle, an der sich der Cursor am Anfang des Wortes befindet)
Wie mache ich das Gegenteil - löscht, wo sich der Cursor bis zum Ende des Wortes befindet?
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).
bash
in -vi
Modus können Sie verwenden ,dW
diejenigen löschenLö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 (auffoo-+-bar.. baz
, es zuerst Löschungenbaz
, dann..
, dannbar
, dann-+-
, dannfoo
).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 vonbash
,gdb
...),zle
(verwendet vonzsh
), verhalten sichpdksh
imvi
Modus wievi
in dieser Hinsicht und imemacs
Modus wie die tty-Zeilendisziplin (nichtemacs
).libedit
(verwendet von BSD Schalen oder (optional)dash
)tcsh
, AT & Tksh
, inemacs
Modus verhalten sich wie inemacs
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 wievi
, aber imemacs
Modus haben Sie zwei Hauptschulen: dietcsh
Schule und dieksh
Schule.Die
ksh
Schule (readline
,ksh
,yash
) verhält sich meist wieemacs
(fish
s Verhalten in etwas anders ist , wie es behandelt nicht-alnum, Nicht-Leerzeichen in beideemacs
undvi
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 bekommentcsh
Schule (und haben Meta-Ddie gleiche Art von Wort zu löschen , wie der Ctrl-WFall ist) , indem zu Ihrem~/.inputrc
:Oder richten Sie sich andererseits
^W
an den anderen Wortbewegungs-Widgets aus (verhalten Sie sich wie Meta-Backscape) mit:Was der MetaSchlüssel ist, finden Sie dort .
quelle
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. 14Ctrl+4
-> Löscht das Wortquelle
Ctrl+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.