在Python readline中设置编辑模式为vi(os x)

4

我想要加强我的Python控制台,我想添加vi风格的编辑功能。

首先,如果我理解正确,python没有读取~/.inputrc

然后,我尝试通过~/.pythonrc.py来实现:

import readline
readline.parse_and_bind('set editing-mode vi')

什么都没有发生。我错过了什么吗?还是我的终端有问题?

我使用的是OS X操作系统和Terminal.app终端。

(尝试使用rlwrap但没有成功)


可能是重复的问题:https://dev59.com/dHRB5IYBdhLWcg3wuZU1 - arcseldon
1个回答

5
苹果自带的OS X中的Python中的“readline”模块没有与GNU“readline”库链接,因为苹果没有在OS X中提供GNU“readline”(可能是由于许可问题)。它们与BSD“editline”库“libedit”链接,该库读取“~/.editrc”并支持不同的编辑命令集。有关详细信息,请参见“man 5 editrc”。如此处所述,您可以检查“readline.__doc__”中的文本“libedit”,以确定使用的是GNU“readline”还是BSD“editline”。如果您确实需要GNU“readline”,则可以安装来自PyPI的readline软件包,其中包含已与GNU“readline”链接的Python“readline”模块的预编译版本。

3
readline和editline是同一件事情,谢谢。最后我只需在~/.editrc中添加bind -v就可以了。 - lajarre
我建议在这里检查提供的答案 - https://dev59.com/zGw15IYBdhLWcg3wZq5r - arcseldon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接