在bash中, times。例如,键入M-6 a将aaaaaa放在命令行中。
在我的计算机上,meta映射到Esc键。这意味着Esc的击键,然后6被解释为M-6,并使终端期待另一个字符重复:
(arg: 6)这在我的情况下是有问题的。我在macOS上使用了macOS,它有一个非常好的小特性,当您开始使用以前的命令历史记录键入命令时,它会弹出一个自动完成窗口。例如,如果您使用Mercurial并键入hg update,它允许您从以前的所有书签中选择并提交您过去更新过的散列,并按最频繁的顺序排序。
当我使用Esc关闭这个窗口时,问题就出现了。例如,如果我开始键入hg update,然后出现“自动完成”窗口,然后意外地不止一次地单击“转义”,然后粘贴到像6dd0e54这样的提交哈希中,那么我实际上在命令行中得到的结果是:
$ hg update ddddddd0e54为什么?因为第一个Esc键按下自动完成窗口,第二个键启动M-键组合,然后粘贴散列中的6d被解释为“重复d字符6时间”。
这是令人恼火的,特别是在处理更多问题的提交散列(如787075d)时:在本例中,它实际上会将近80万d字符放入我的终端,从而使其不可用。
因此,知道我从来不使用这些读行重复参数,除了偶然,是否有任何方法关闭这个特性,最好是在bash,但在iTerm2中呢?
发布于 2018-05-01 20:00:12
正在运行
bind -p | grep '"\\e1"'返回
"\e1": digit-argument因此,只需删除digit-argument与bind -r的所有绑定即可
for i in - {0..9} ; do
bind -r '\e'$i
done-也被绑定到digit-argument,以允许消极的论点。
https://stackoverflow.com/questions/50122841
复制相似问题