这听起来很无知,但是:
我在python解释器(RHEL 5.3上的python 2.4)上工作了一下,突然发现自己处于“vi命令模式”。也就是说,我可以使用典型的vi键绑定编辑以前的命令,向左移动h,用x ...删除
我喜欢它 - 唯一的问题是,我不知道我是如何到达这里的(也许是通过我导入的其中一个模块:pylab / matplotlib?)。
有人可以解释如何在解释器中启用此模式吗?
答案 0 :(得分:30)
这一切都取决于一些事情。
首先,python shell使用readline,因此,~/.inputrc
在这里很重要。这与psql的PostgreSQL命令行解释器和mysql的MySQL shell是一样的。所有这些都可以配置为使用vi样式的命令绑定,包括历史记录等。
<ESC>
将使你进入python shell的vi模式
您可能需要~/.inputrc
set editing-mode vi
OSX信息
OSX使用libedit,它使用〜/ .editrc。您可以 man editrc 获取更多信息。
例如,要模仿在历史记录中搜索的热门组合键,您可以将以下内容添加到.editrc
bind "^R" em-inc-search-prev
答案 1 :(得分:24)
Ctrl-Alt-J在readline programs中从Emacs模式切换到Vi模式。
或者将“set editing-mode vi”添加到〜/ .inputrc
答案 2 :(得分:3)
对于Mac OS X 10.10.3,python2.7,vi模式可以通过放置&#34; bind -v&#34;来配置。在〜/ .editrc中。该手册页的最后几段暗示了这一点。
答案 3 :(得分:2)
使用readline.parse_and_bind方法。例如,尝试使用python交互式控制台:
import readline
readline.parse_and_bind("set editing-mode vi")
您可以在.inputrc中设置任何可以通过此方法设置的命令。我在Python 2.7和3.5.1中尝试过它。
另见man readline