7

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

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

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

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

4

2 回答 2

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

于 2011-02-05T08:15:18.970 回答
0

在目录 C:\Documents and Settings\yourusername 中,可以找到一个名为 '.bashrc' 的文件 添加以下 2 行 bind '"e":self-insert' bind '"P":self-insert'

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

于 2011-06-02T09:34:22.290 回答