Alt在 Bash 下,多年来+的某些行为d一直让我发疯,我发现也许可以通过设置来修复它。
如果我在终端并发出如下命令:
...$ cat >> ~/notesSuperLongFilename.txt
然后如果我想发布:
...$ scp ~/notesSuperLongFilename.txt
我想使用 Ctrl+p (上一行)取回“cat >> ~/notesSuperLongFilename.txt”,然后再次执行Ctrl+ a,然后执行Alt+d和Alt+ 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-d
iskill-word
应该像 Emacs 中的同名命令一样工作。但正如您所观察到的,事实并非如此 — Emacs 会将>>
示例中的空格和波浪号视为断字。那bash
不,我会认为是一个错误。除了获取 的源代码bash
、更改它并重新编译它之外,我不知道你能做什么。