![如何像在 Ubuntu 的其他部分一样使用 Ctrl-Backspace 在终端中删除单词?](https://linux22.com/image/1063152/%E5%A6%82%E4%BD%95%E5%83%8F%E5%9C%A8%20Ubuntu%20%E7%9A%84%E5%85%B6%E4%BB%96%E9%83%A8%E5%88%86%E4%B8%80%E6%A0%B7%E4%BD%BF%E7%94%A8%20Ctrl-Backspace%20%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E5%88%A0%E9%99%A4%E5%8D%95%E8%AF%8D%EF%BC%9F.png)
当我在任何程序(浏览器、文本编辑器、IDE)中的文本中时,我可以通过按住Ctrl并按下Backspace3 次来删除 3 个单词。
这在所有程序中都能完美运行,除了对于终端。在终端中Ctrl+Backspace只会删除一个字母,而我需要Alt+Backspace来删除整个单词。
由于我不断在终端和其他程序之间切换,这真的很烦人。
我尝试过我在这里找到(创建~/.inputrc
包含"\C-?":"\C-W"
)但这对我来说不起作用。现在,当我按 时,它会删除整个单词Backspace,但Ctrl+Backspace仍然只会删除一个字母。
有人知道我该如何改变这种行为,以便Ctrl+Backspace删除光标左侧的单词吗?欢迎提供所有提示!
答案1
如果没有终端仿真器的帮助,bash 本身通常无法做到这一点,因为Backspace 是Ctrl通常与+ ?(ASCII DEL)(或Ctrl+ H- ASCII 退格键)的键码相同。(尝试Ctrl+V然后Backspace进行验证。)这使得Ctrl+Backspace本质上Ctrl+ Ctrl+ ?... 即Ctrl+?或仅仅是Backspace其本身。*)
某些终端仿真器具有一些设置,允许您为各种组合键发送自定义键码。特别是,许多终端仿真器都有自定义Backspace发送内容的选项(通常在 ASCII DEL 或退格键之间切换)。您可能想尝试这些选项,看看终端仿真器是否会为H和Ctrl+发送不同的键码Backspace。
* 这对于许多特殊键也同样适用 - Enteris Ctrl+ M、Tabis Ctrl+ I、Escis Ctrl+]等等。