CPython交互式阅读线 – 更好地向后删除单词

是否可以在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交互式上下文中遇到问题,请不要删除问题.

上一篇:python – 使用ssh时在bash中缺少’read’提示符?


下一篇:如何让IPython按类组织标签完成的可能性?