使用Ctrl或Alt AND退格键删除Bash中的最后一个单词


17

在Linux中,我习惯按Ctrl- Backspace删除最后一个单词,但我不知道如何在Bash终端中执行。

在OS XI中使用Alt- Backspace做同样的事情。

有什么方法可以使Bash识别 Ctrl -或Alt- Backspace组合键以删除最后一个单词?

在Linux中,我terminator用作终端仿真器,在OSX中,我使用iTerm2


1
Alt-⌫aka Alt-←aka Alt-Backspace对我来说很好用。我正在使用终结者0.93。
泰迪

Answers:


31

您可以随时使用Ctrl- W。它删除光标之前的单词,并在每个Bash中使用。

请参阅此处以获取Bash键盘快捷键的列表。


1
哇,这可能永远改变了我使用终端的方式。谢谢!
大卫

4
这不能回答问题
-Sel

5

您只需要在iTerm的首选项中将Option设置为Meta键(“ 个人资料»键”)。

backward-kill-word 一定会 Meta-Rubout默认情况下(即Opt-Backspace)。

苹果的Terminal.app中存在相同的选项(尽管灵活性较差)。


2
实际上,您必须使用“ + Esc”设置。仅将其设置为“充当:Meta”会导致?打印,而不是删除单词。
slhck 2011年

@slhck不适合我。但是由于开发人员仍然推荐它,所以这不是一件坏事。
丹尼尔·贝克

2

在终止符中,您可以使用以下“ 插件

[keybindings]
    kill_word = <Control>BackSpace

在您的配置文件中。这将映射Ctrl - BackspaceESCDEL,另一个快捷方式将删除最后一个单词。


不幸的是,这在终止程序1.9中停止了工作。您能否提供修复程序?
Sel

1
抱歉,很久以前停止使用终止符...
OlivierBlanvillain

2

您可以.inputrc在主目录中创建一个文件,并将此内容添加到内部:

"\C-h": backward-kill-word

1
请注意,此C-w答案与公认的答案有所不同,即“单词”不同。C-w将从光标位置删除,直到它遇到非空格字符,然后一个空间(即,"this is a/se=weird |test"其中|标记光标位置将产生"this is test")。与此相反,C-h在这里绑定(可使用绑定bind '"\C-h": backward-kill-word".bashrc)会产生"this is a/se= test",因为它基本上界定什么是bash变量会,而不仅仅是空间的话。
jeremysprofile18年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.