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

Ced*_*tin 9 bash keyboard-shortcuts line-editor

在 Bash 下,Alt+ 的一些行为d多年来一直让我发疯,我发现也许可以通过设置来修复它。

如果我在终端并发出这样的命令:

...$   cat >> ~/notesSuperLongFilename.txt
Run Code Online (Sandbox Code Playgroud)

然后如果我想说,发出:

...$ scp ~/notesSuperLongFilename.txt
Run Code Online (Sandbox Code Playgroud)

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

...$  ~/notesSuperLongFilename.txt
Run Code Online (Sandbox Code Playgroud)

然后我就可以简单地输入“scp”,然后做一个Ctrl+ m(或按回车/回车)。

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

...$ >> ~/notesSuperLongFilename.txt
Run Code Online (Sandbox Code Playgroud)

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

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

...$ .txt
Run Code Online (Sandbox Code Playgroud)

因此,出于某种原因,Alt+ 立即d删除">> ~/notesSuperLongFilename"而不是删除">> "

这一定是多年来让我对 Linux / Bash 发疯的最大浪费。

那么我该如何解决Alt+ 的这个(可以说是损坏的)行为d呢?

PS:我不知道谁对该Alt+d行为“负责” :我不知道它是终端还是外壳(在我的情况下是 Bash)。

dod*_*ler 3

\n

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

\n
\n\n

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

\n\n

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

\n