回答:
ctrlw標準の「kill word」(別名werase
)です。
ctrlu行全体を削除します(kill
)。
で変更できますstty
。
-bash-4.2$ stty -a
speed 38400 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc -xcase
iflags: -istrip icrnl -inlcr -igncr -iuclc ixon -ixoff ixany imaxbel
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -onocr -onlret -olcuc oxtabs -onoeot
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = <undef>;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
-bash-4.2$ stty werase ^p
-bash-4.2$ stty kill ^a
-bash-4.2$
行に実際の制御文字を配置する必要はなく、sttyはパッティング^
を理解してから、制御でヒットする文字を理解することに注意してください。
これを行った後、ヒットctrlpすると行から単語が消去されます。私がヒットした場合とctrla、それは、行全体を消去します。
ctrl-backspace
。一般にBackspaceはctrl-h
or として送信されるctrl-?
ため、ctrl-backspace
何らかの形で送信されますctrl-ctrl-backspace
。別の何かが送信されたかどうかを把握しようとしましたが、少なくとも、パテは、入力するときにバックスペースを送信するだけですctrl-backspace
。
また、これを行うこともできCtrlWます。
別のオプションは、独自のショートカットを設定することですが、これは使用しているターミナルエミュレータによって異なります。以下のためにxterm
とrxvt
他の人と、おそらく、この行を追加するには、~/.inputrc
(それが存在しない場合は、ファイルを作成します):
## rxvt, xterm
"\b":backward-kill-word
gnome-terminal
そして、そのilkはAltBackspaceデフォルトで持っているようですが、どうやらreadline()
取得するためにパッチを適用する必要がありますCtrlBackspace。
以下も参照してください。
Alt+ Backspacebashとzshで動作します。
Ctrl+W
削除して使用すると、URL 全体Alt+Backspace
が削除されますが、単語は削除され、特殊文字が見つかると削除が停止します。
stty
コマンドを使用して、「kill word」を割り当てるために、Ctrl-v Ctrl-BackspaceをCtrl+BckSpc
押して入力しstty werase
ました。これにより、リテラルのCtrl-Backspace文字がの引数として挿入されstty werase
ます。残念ながらCtrl-Backspace
、単語を削除するために入力する必要はありませんが、Backspace
キーだけで機能します。だから私はこれを行う方法を学ぶために@terdonのリクエストを2番目にしたいと思います。をwerase
デフォルトにリセットするには、を使用しますstty werase Ctrl-v Ctrl-w
。