在 shell (bash) 中时 - 我想让 Ctrl-Backspace 绑定到“向后删除单词”。是否可以?
编辑:
我konsole
在 KDE使用- 终端。
小智 13
我通过谷歌找到了这个线程,但答案不是我想听到的。所以我玩了:
在我的终端上,正常退格键会发送^H
,而 ctrl+退格键会发送^?
. 所以它应该是一个简单的重新绑定^?
删除单词的情况,默认情况下可以通过 Ctrl+W 使用。
$ bind -P | grep 'C-w'
unix-word-rubout can be found on "\C-w".
Run Code Online (Sandbox Code Playgroud)
因此,这应该有效:
$ bind '"\C-?":unix-word-rubout'
Run Code Online (Sandbox Code Playgroud)
然而它并没有......有人能够解释吗?
$ bind '"\C-?":"^W"'
Run Code Online (Sandbox Code Playgroud)
其中^W
是文字/原始^W
(按 ctrl+V 然后按 ctrl+W 使其出现)。
小智 12
为什么不使用已经在大多数终端中映射的Alt+Backspace或Ctrl+ W。不确定控制台。Xmodmap (man xmodmap) 也可用于重新映射其他自定义键。(矛盾的是,xmodmap 不能很好地重新映射 Backspace,因为终端覆盖了映射,但它适用于大多数键......)。
小智 12
只需编辑您的~/.inputrc
(您可能需要创建一个或复制其中的一个/etc/inputrc
),使其包含:
# Ctrl-Delete: delete next word
"\e[3;5~": shell-kill-word
# Ctrl-Backspace
"\C-H": shell-backward-kill-word
Run Code Online (Sandbox Code Playgroud)
这也将映射Ctrl+Delete以删除光标旁边的单词。
这里有一些很好的答案,但我在 Konsole 中使用 Settings->Edit Current Profile->Keyboard->Edit 解决了它,然后添加了从Backspace+Control
到的映射\x17
。(我使用 找到了 Ctrl-w 的 ASCII 代码showkey --ascii
。)