嗨,你好,这是我遇到的最有趣的错误/冲突。
在python shell中,我不能输入小写的“b”。起初我觉得有些东西在关键之下,但不是,在其他任何地方它都能很好地发挥作用。 ctrl+b
shift+b
即使capslock b
也有效。
然而,当我使用sudo
(即sudo python
)运行shell时,我的小写“b”效果很好。
我的最后一步是安装pyexiv2(使用aptitude
),我可以在有和没有sudo的情况下导入它而没有问题。我删除了它,但结果没有改变。
到底怎么可能是错的?
我将Ubuntu 10.04 LTS x86
与Python 2.6.5
进一步说明:
我安装了一个vim修饰符脚本,可能是麻烦
使用这个:
$ git clone https://github.com/sontek/dotfiles.git
$ cd dotfiles
$ ./install.sh vim
此脚本启动了更多git克隆,因此可能很难遵循。但 确实 许多变化,包括终端的外观。
1)我甚至无法复制/粘贴“b”字符。 ctrl+c/v
select&middle click
都不起作用。
2)当我使用python -E
打开shell时,所提到的所谓的 vim script
中的修饰符不会出现。 b
运作良好。当我使用python
或python -S
打开它时,修改存在,我无法输入b
。
3 )好消息:我设法找到了错误,它是所谓的 vim script
。我已重命名其文件夹,它工作正常。几个小时后,我将深入研究究竟是什么导致问题,并在此处发布详细结果。
答案 0 :(得分:12)
.pythonstartup
中有问题的行如下:
readline.parse_and_bind("bind ^I rl_complete") # darwin libedit
此.pythonstartup
会修复它......
try:
import readline
except ImportError:
print "Module readline not available."
else:
import rlcompleter
if 'libedit' in readline.__doc__:
readline.parse_and_bind("bind ^I rl_complete")
else:
readline.parse_and_bind("tab: complete")
答案 1 :(得分:8)
我的钱是你的shell上的readline搞砸了。也许'b'键必然会自动完成。查看PYTHONSTARTUP
变量并查看它所引用的文件。如果该文件类似于readline.parse_and_bind
...
我认为它是'b'(而不是其他一些字母)和'bind'这个词之间存在某种联系,就像有一个名为bind_to_complete
的变量并且它被字面解释(并且只是第一个角色。)
让群众疯狂猜测开始!