imi*_*ric 147
如果有人最近在这里游荡,IPython 5.0从readline切换到prompt_toolkit,所以这个问题的更新答案是传递一个选项:
$ ipython --TerminalInteractiveShell.editing_mode=vi
Run Code Online (Sandbox Code Playgroud)
...或者在配置文件配置中全局设置(如果没有配置~/.ipython/profile_default/ipython_config.py,则创建ipython profile create它):
c.TerminalInteractiveShell.editing_mode = 'vi'
Run Code Online (Sandbox Code Playgroud)
gak*_*gak 32
看起来解决方案适用于许多其他与readline兼容的应用:
在~/.inputrc文件中设置以下内容:
set editing-mode vi
set keymap vi
set convert-meta on
Run Code Online (Sandbox Code Playgroud)
资料来源:http://www.jukie.net/bart/blog/20040326082602
Pie*_*erz 11
您还可以在Vi模式和Emacs模式之间交互式切换.根据在它们之间切换的readline文档,你应该能够使用MCj组合键,但这似乎只允许我切换到vi-mode - 在我的Mac上(其中ESC被用作'Meta'键)它是:ESC+ CTRL+ j.要切换回Emacs模式,可以使用Ce,但这对我来说似乎不起作用 - 我不得不在我的Mac上做MCe - 它是:ESC+ CTRL+ e.
我的〜/ .inputrc的设置如下:
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
Run Code Online (Sandbox Code Playgroud)
ipython使用readline库,这可以使用该~/.inputrc文件进行配置.你可以加
set editing-mode vi
Run Code Online (Sandbox Code Playgroud)
该文件使所有readline基于应用程序使用vi样式的键绑定而不是Emacs.
我需要能够在IPython 5中以交互方式切换模式,我发现你可以通过动态重新创建提示管理器来实现:
a = get_ipython().configurables[0]; a.editing_mode='vi'; a.init_prompt_toolkit_cli()
Run Code Online (Sandbox Code Playgroud)