Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
标准python解释器有vi命令模式吗?_Python_Vi - Fatal编程技术网

标准python解释器有vi命令模式吗?

标准python解释器有vi命令模式吗?,python,vi,Python,Vi,我在python解释器(RHEL5.3上的Python2.4)中工作了一会儿,突然发现自己处于一种“vi命令模式”。也就是说,我可以用典型的vi键绑定编辑以前的命令,用h向左,用x删除 我喜欢它——唯一的问题是,我不知道我是如何来到这里的(也许是通过我导入的模块之一:pylab/matplotlib?) 有人能解释一下如何在解释器中启用此模式吗?这取决于几件事 首先,pythonshell使用readline,因此,~/.inputrc在这里很重要。psql是PostgreSQL命令行解释器,m

我在python解释器(RHEL5.3上的Python2.4)中工作了一会儿,突然发现自己处于一种“vi命令模式”。也就是说,我可以用典型的vi键绑定编辑以前的命令,用h向左,用x删除

我喜欢它——唯一的问题是,我不知道我是如何来到这里的(也许是通过我导入的模块之一:pylab/matplotlib?)


有人能解释一下如何在解释器中启用此模式吗?

这取决于几件事

首先,pythonshell使用readline,因此,
~/.inputrc
在这里很重要。psql是PostgreSQL命令行解释器,mysql是mysql shell。所有这些都可以配置为使用vi风格的命令绑定,以及历史记录等

一旦将编辑模式设置为vi,就会在pythonshell中将您置于vi模式

您可能需要在
~/.inputrc

set editing-mode vi
OSX信息

OSX使用libedit,它使用~/.editrc。有关更多信息,请访问maneditrc

例如,要模拟在历史记录中搜索的常用组合键,可以将以下内容添加到.editrc中

bind "^R" em-inc-search-prev

在中,Ctrl-Alt-J从Emacs模式切换到Vi模式


或者将“设置编辑模式vi”添加到~/.inputrc

对于Mac OS X 10.10.3、python2.7,
vi
模式可以通过将
bind-v
放置在
~/.editrc
中进行配置。手册页的最后几段暗示了这一点。

使用方法。例如,在python交互式控制台上尝试:

import readline
readline.parse_and_bind("set editing-mode vi")
似乎您可以在中设置任何命令。您也可以通过此方法设置inputrc。我在Python2.7和3.5.1中尝试了它

另请参见
man readline



编辑(2019年12月21日):或者,为了拥有一个真正的vim,您可以设法用它修补python的读线。我用bash做的,非常酷。

在“will put you…”之前,你的答案中有一行不见了吗?谢谢哇!我不仅不知道,我甚至不知道还有什么要知道的!感谢您的回答和修复其中缺失的ESC。这是一个很好的信息,但我接受阿卡内克斯的回答,因为它解释了在我神秘的案件中发生了什么。。。(我没有任何.inputrc文件)在MacOSX上-在所有上述建议之后,我仍然有问题。这里提供的答案解决了我的问题——总之,将bind-v添加到.editrc,并将编辑模式vi设置为inputrc都有效。对我来说不起作用——只是似乎产生了一个错误。我在mac电脑上;这有什么区别吗?对于任何有足够的rep添加到这个答案的人,这里有一个到readline文档的链接:…因此对于emacs编辑模式,点击C-e,对于vi编辑模式,点击M-C-j@JohnFouhy我也有同样的问题。在我的
~/
中设置编辑模式vi
。inputrc
也没有帮助。这里提供的更多最新答案帮助了我-