是否可以在CPython 2.7或3.3中更改readline的字边界?
我想要back-kill-word(绑定到舒适的C-w),而back-word具有与forward-word和forward-kill-word完全相同的单词边界.目前C-W删除了一半的行,无论语法,点等,并且延伸到M-DEL以进行更明智的向后删除太麻烦了.我现在也不想使用IPython.
简单地重新配置C-w就像M-DEL一样很好(将它设置为reverse-kill-word不会做任何事情,因为M-DEL函数可能被称为其他东西.)
更新:它变得陌生!
>>> import readline
>>> readline.parse_and_bind('"C-k": backward-kill-word')
(press up, press C-k a lot, witness it working)
>>> readline.parse_and_bind('"\\C-w": backward-kill-word')
(press up, press C-w, and see that its function did not change, it wasn't re-bound!)
解决方法:
回答我自己的问题,因为我在这里找到了答案:
https://superuser.com/questions/212446/binding-backward-kill-word-to-ctrlw
简短的回答是:除了添加
import readline
readline.parse_and_bind('"\\C-w": backward-kill-word')
到〜/ .pythonrc.py,执行:
stty werase undef
在同一个终端上运行Python之前的某个时间.这将从终端控制C-w.
如果有人在Python交互式上下文中遇到问题,请不要删除问题.