这听起来很无知,但是:
我在python解释器(RHEL 5.3上的python 2.4)上工作了一下,突然发现自己处于"vi命令模式"的状态.也就是说,我可以使用典型的vi键绑定编辑以前的命令,左边用h,用x删除...
我喜欢它 - 唯一的是,我不知道我是如何到达这里的(也许是通过我导入的其中一个模块:pylab/matplotlib?).
任何人都可以解释如何在解释器中启用此模式?
Phi*_*lds 31
这一切都取决于一些事情.
首先,python shell使用readline,因此,~/.inputrc这里很重要.这与psql的PostgreSQL命令行解释器和mysql的MySQL shell是一样的.所有这些都可以配置为使用vi样式的命令绑定,历史记录等.
<ESC> 一旦你的编辑模式设置为vi,你将进入python shell的vi模式
您可能需要以下定义 ~/.inputrc
set editing-mode vi
Run Code Online (Sandbox Code Playgroud)
OSX信息
OSX使用libedit,它使用〜/ .editrc.你可以通过manrc来获取更多信息.
例如,要模仿在历史记录中搜索的常用组合键,可以将以下内容添加到.editrc中
bind "^R" em-inc-search-prev
Run Code Online (Sandbox Code Playgroud)
小智 27
在readline程序中, Ctrl-Alt-J从Emacs模式切换到Vi模式.
或者在您的〜/ .inputrc中添加"set editing-mode vi"
使用readline.parse_and_bind方法。例如,尝试使用 python 交互式控制台:
import readline
readline.parse_and_bind("set editing-mode vi")
Run Code Online (Sandbox Code Playgroud)
似乎您可以在 .inputrc 中设置的任何命令也可以通过此方法设置。我在Python 2.7和3.5.1中尝试过。
也可以看看man readline
编辑 (2019 年 12 月 21 日) :或者也许,要拥有一个真正的 vim,您可以设法使用Athame修补 python 的 readline 。我用 bash 做到了,非常酷。
| 归档时间: |
|
| 查看次数: |
7729 次 |
| 最近记录: |