首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何关闭bash的“读行参数”的字符重复?

如何关闭bash的“读行参数”的字符重复?
EN

Stack Overflow用户
提问于 2018-05-01 19:47:37
回答 1查看 1.1K关注 0票数 4

在bash中, times。例如,键入M-6 aaaaaaa放在命令行中。

在我的计算机上,meta映射到Esc键。这意味着Esc的击键,然后6被解释为M-6,并使终端期待另一个字符重复:

代码语言:javascript
复制
(arg: 6)

这在我的情况下是有问题的。我在macOS上使用了macOS,它有一个非常好的小特性,当您开始使用以前的命令历史记录键入命令时,它会弹出一个自动完成窗口。例如,如果您使用Mercurial并键入hg update,它允许您从以前的所有书签中选择并提交您过去更新过的散列,并按最频繁的顺序排序。

当我使用Esc关闭这个窗口时,问题就出现了。例如,如果我开始键入hg update,然后出现“自动完成”窗口,然后意外地不止一次地单击“转义”,然后粘贴到像6dd0e54这样的提交哈希中,那么我实际上在命令行中得到的结果是:

代码语言:javascript
复制
$ hg update ddddddd0e54

为什么?因为第一个Esc键按下自动完成窗口,第二个键启动M-键组合,然后粘贴散列中的6d被解释为“重复d字符6时间”。

这是令人恼火的,特别是在处理更多问题的提交散列(如787075d)时:在本例中,它实际上会将近80万d字符放入我的终端,从而使其不可用。

因此,知道我从来不使用这些读行重复参数,除了偶然,是否有任何方法关闭这个特性,最好是在bash,但在iTerm2中呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-01 20:00:12

正在运行

代码语言:javascript
复制
bind -p | grep '"\\e1"'

返回

代码语言:javascript
复制
"\e1": digit-argument

因此,只需删除digit-argumentbind -r的所有绑定即可

代码语言:javascript
复制
for i in - {0..9} ; do
    bind -r '\e'$i
done

-也被绑定到digit-argument,以允许消极的论点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50122841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档