在python shell中,"b"字母不起作用,是什么?

Umu*_*acı 15 python shell

嗨,你好,这是我遇到的最有趣的错误/冲突.

在python shell中,我不能键入小写"b".起初我觉得有些东西在关键之下,但不是,在其他任何地方都运行得非常好.此外ctrl+b shift+b,即使capslock b作品.

更重要的是,当我用sudo(即sudo python)运行shell时,我的小小写"b"运行良好.

我的最后一步是安装pyexiv2(使用aptitude),我可以在有和没有sudo的情况下导入它.我删除了它,但结果没有改变.

到底怎么可能是错的?

我使用Ubuntu 10.04 LTS x86Python 2.6.5

进一步说明:
我已经安装了vim修饰符脚本,这可能是麻烦.
使用这个:

$ git clone https://github.com/sontek/dotfiles.git
$ cd dotfiles
$ ./install.sh vim
Run Code Online (Sandbox Code Playgroud)

这个脚本启动了更多的git克隆,因此可能很难遵循.但它做了许多改变,包括终端的外观.

更新:

1)我甚至无法复制/粘贴"b"字符.ctrl+c/v select&middle click两者都不起作用.

2)当我打开与外壳python -E,从提到的修饰所谓的 vim script不会出现.而且b效果很好.当我打开它pythonpython -S存在修改时我无法输入b.

3)好消息:我已经设法找到了故障,这就是所谓的 vim script.我已重命名其文件夹,它工作正常.几个小时后,我将深入研究究竟是什么导致问题,并在此处发布详细结果.

Gre*_*ind 12

你的问题.pythonstartup是:

 readline.parse_and_bind("bind ^I rl_complete") # darwin libedit
Run Code Online (Sandbox Code Playgroud)

.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")
Run Code Online (Sandbox Code Playgroud)


Mal*_*lio 8

我的钱是你的shell上的readline搞砸了.也许'b'键必然会自动完成.查看PYTHONSTARTUP变量并查看它所引用的文件.如果该文件有类似readline.parse_and_bind...

我认为它是'b'(而不是其他一些字母)和'bind'之间存在某种联系,就像有一个被调用的变量一样bind_to_complete,它被字面解释(并且只采用了第一个字符).

让群众疯狂猜测开始吧!

  • 是的,15秒的实验产生了这样的观察:`readline.parse_and_bind("xyz')`阻止了`x`字符,无论它是什么,从而工作.据推测,有一些'yz`的值会导致按下`x`做一些有用的事情,但随意的角色只是阻止它做任何事情.我讨厌说我告诉过你但是......等等,罢工,我*爱*说我告诉过你.我甚至有一个令人讨厌的幸灾乐祸我跳舞. (5认同)
  • 我注意到命令"tab:complete"将键'tab'绑定到'complete'功能; 也许命令'bind ^ I rl_complete'将键'b'绑定到(不存在的)函数'ind ^ I rl_complete'.这是我对我的回答的猜测,这是我现在的猜测. (2认同)