外壳程序的“删除单词”快捷方式删除了太多字符


9

在Bash领导下,Alt+的某些行为d自几年以来一直使我发疯,我发现也许可以通过设置来解决它。

如果我在终端上并发出如下命令:

...$   cat >> ~/notesSuperLongFilename.txt

然后,如果我想发出:

...$ scp ~/notesSuperLongFilename.txt

我想使用Ctrl + p(上一行)取回“ cat >>〜/ notesSuperLongFilename.txt”,然后再执行Ctrl+ a,然后Alt+ dAlt+ d,以便获得:

...$  ~/notesSuperLongFilename.txt

然后我可以简单地输入“ scp”,然后执行Ctrl+ m(或按Enter / Return)。

但是它不起作用,因为在第一个Alt+之后d我得到:

...$ >> ~/notesSuperLongFilename.txt

(到目前为止,一切都很好)

但是在第二个Alt+之后d我得到:

...$ .txt

因此,由于某种原因Alt+ d会立即删除“ >>〜/ notesSuperLongFilename”,而不仅仅是删除“ >>”

自从多年以来,这一直是使我对Linux / Bash疯狂的最大浪费时间。

那么如何解决Alt+的这种(可能是损坏的)行为d呢?

PS:我不知道谁是为“负责任的” Alt+ d行为:我不知道这是否是终端还是做,如果它的外壳(猛砸在我的情况)。


在“ cat >>〜/ notesSuperLongFilename.txt”之后,键入“ scp”,然后键入Esc。(一次转义,然后一次转义“。”字符)
Mathieu

Answers:


3

我不知道是谁负责Alt + d的行为:我不知道它是终端还是外壳(在我的案例中为Bash)。

这是bash,特别是默认的命令行编辑设置。 是一个漂亮的页面,说明可以绑定哪些命令以及如何更改默认绑定。

默认的结合Alt-d就是kill-word它应该像工作在Emacs同名的命令。但是,正如您所观察到的,事实并非如此-Emacs会将>>示例中的波浪号和波浪号之间的空格视为断字。那bash不是,我会考虑一个错误。缺少获取bash,更改和重新编译的源代码,我不知道您能做什么。


1
这似乎是一个错误。我会报告给Bash团队。
厄尼
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.