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

时间:2014-02-03 16:30:35

标签: python configuration readline

是否可以在CPython 2.7或3.3中更改readline的字边界?

我希望backward-kill-word(绑定到舒适C-w)和backward-wordforward-wordforward-kill-word具有完全相同的字边界。目前C-w删除了一半的行,忽略了语法,点等,并延伸到M-DEL以进行更明智的向后删除太麻烦了。我现在也不想使用IPython。

只需将C-w重新配置为M-DEL即可(将其设置为backward-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!)

2 个答案:

答案 0 :(得分:3)

回答我自己的问题,因为我在这里找到了答案:

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交互式上下文中遇到问题,请不要删除问题。

答案 1 :(得分:1)

基于@ mischa-arefiev的回答,我现在在System.out.print(textfile.charAt(j)); 文件中有以下内容,该文件适用于ipython2和ipython3:

PYTHONSTARTUP

我在Linux上使用它,我不确定它是否也适用于Mac。