2011-02-05 23 views
7

我已经成功安装并使用MinGW和msys来编译和链接Windows可执行文件。在32位Vista上的全新安装(与我以前的成功相同的平台)时,我遇到了一些令人生厌的行为:当我在提供的shell环境中键入小写'e'或大写'P'时,一声蜂鸣,但没有人物!含义我不能输入“make”或“echo”,然后运行这些命令,例如。它是:m-a-k-BEEP!无法在MinGW/msys shell或终端中输入'e'或'P'

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

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

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

+0

在Windows上与git shell有同样的问题,但不是新鲜的MinGW的bash。 (同样的修复工作)...也许这是特定的一些MSYS版本? – Kos 2011-08-22 12:32:54

回答

12

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

如果你这样做的命令:如果 “P” 和 “E” 中的条目丢失,则尝试这些命令

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

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

你应该得到这样的结果。

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

很显然,你不能键入的字符,所以输入他们的相反情况下的版本,按下左箭头,然后按Alt-U给upcase小“P”或者Alt-1(这是一个较低的 - “ell”)来压缩大写字母“E”(您需要在第一个命令中为每个“e”执行此操作)。

如果可行,请检查~/.inputrc文件以查找无效的键绑定。此外,请检查您的启动文件,如~/.bashrc等。此问题可能与丢失或错位的引号有关,并且可能是针对类似\eP的某个键绑定的,默认情况下,该绑定会绑定到readline函数do-lowercase-version

+0

你的指示完美运作。我能够看到确实“P”和“e”没有自插入绑定,添加了它们,一切正常。然后,我开始在四处搜索,并确信在我的'〜/ .inputrc'文件中找到了我添加的违规行,认为它们是良性的:'echo $ PATH'和 'PATH = $ PATH:/ c/MinGW/msys/1.0/bin中:.”和 'echo $ PATH',无论何种原因导致问题出现时,以及何时解决问题。谢谢! – 2011-02-06 06:38:01

0

在目录C:\ Documents和Settings \ yourusername,你可以找到一个名为“.bashrc”中 添加以下两行 绑定‘‘E’:自我插入’ 绑定“‘P’:自我插入'

Dennis Williamson,非常感谢!这个问题困扰了我很长一段时间。

相关问题