shell 的“删除单词”快捷方式删除了太多字符

shell 的“删除单词”快捷方式删除了太多字符

Alt在 Bash 下,多年来+的某些行为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行为“负责”:我不知道是终端还是shell(在我的例子中是Bash)。

答案1

我不知道谁对 Alt+d 行为“负责”:我不知道是终端还是 shell(在我的例子中是 Bash)。

它是bash,特别是默认的命令行编辑设置。 这里这是一个很好的页面,介绍了可以绑定哪些命令以及如何更改默认绑定。

默认绑定Alt-diskill-word应该像 Emacs 中的同名命令一样工作。但正如您所观察到的,事实并非如此 — Emacs 会将>>示例中的空格和波浪号视为断字。那bash不,我会认为是一个错误。除了获取 的源代码bash、更改它并重新编译它之外,我不知道你能做什么。

相关内容