不能在MinGW / msys shell或终端中键入“e”或“P”

时间:2011-02-05 07:02:00

标签: shell terminal mingw msys

我已经成功安装并使用过去的MinGW和msys来编译和链接Windows可执行文件。在32位Vista的全新安装(与之前的成功相同的平台)上,我遇到了一些令人抓狂的行为:当我在提供的shell环境中输入小写的“e”或大写的“P”时,我得到了一声低沉的嘟嘟声,但没有人物!意思是我不能输入“make”或“echo”,然后运行这些命令。它是:m-a-k-BEEP!

当您通过安装程序生成的快捷方式调用msys时打开的shell中发生此'无'BEEPing,并且通过导航到c:\ msys \ 1.0 \ bin并双击bash来在shell中发生。 exe,sh.exe,rxvt.exe(实际上它有一个低沉的噪音粉扑而不是一个清脆的BEEP),但总是小写的'e'和大写'P'不会回应终端(或shell?显然我没有处理这些术语之间的差异。)

我尝试过自动MinGW和msys安装程序,并在同一端进行了全新的手动安装。

我不太了解炮弹,或者他们的环境在他们启动时如何演变,所以我不知道从哪里开始寻找这种古怪行为的来源。

2 个答案:

答案 0 :(得分:12)

我假设你正在使用Bash。听起来像是因为某些原因,键绑定已经搞砸了。

如果您执行此命令:

bind -p|grep -i '"[pE]"'

你应该得到这个结果:

"E": self-insert
"e": self-insert
"P": self-insert
"p": self-insert

如果缺少“P”和“e”的条目,请尝试这些命令。

bind '"e":self-insert'
bind '"P":self-insert'

显然,你不能输入字符,所以输入他们的反面案例版本,按左箭头,然后按Alt-u将小“p”或Alt-l(这是一个小写“ell” “)将大写字母”E“(你需要在第一个命令中为每个”e“执行此操作)。

如果可行,请检查~/.inputrc文件以查找无效的键绑定。此外,检查您的启动文件,例如~/.bashrc等。问题可能是缺少或错放引号,它可能是\eP之类的键绑定,默认情况下是绑定到readline函数do-lowercase-version

答案 1 :(得分:0)

在目录C:\ Documents and Settings \ yourusername中,您可以找到名为' .bashrc'的文件。 添加以下2行 绑定" e":自我插入' 绑定"" P":自我插入'

丹尼斯威廉姆森,非常感谢你!这个问题困扰了我很长时间。