如何使用vi键在IPython的下* nix中?(How do I use vi keys in i

2019-06-24 02:30发布

目前在猛砸我用set -o vi ,使我在bash提示符vi模式。

我如何得到这个打算在IPython中?

注意:如果答案适用于所有* nix中,我会从标题中删除OS X :)

Answer 1:

如果某人的游荡在这里最近, IPython中从5.0的readline切换到prompt_toolkit ,所以更新的这个问题的答案是通过一个选项:

$ ipython --TerminalInteractiveShell.editing_mode=vi

...或全局设置配置文件中的配置( ~/.ipython/profile_default/ipython_config.py ;与创建它ipython profile create ,如果你没有的话)有:

c.TerminalInteractiveShell.editing_mode = 'vi'


Answer 2:

看起来像一个解决方案适用于许多其他的readline兼容的应用程序:

设置在下面的~/.inputrc文件:

set editing-mode vi
set keymap vi
set convert-meta on

来源: http://www.jukie.net/bart/blog/20040326082602



Answer 3:

您还可以通过交互VI-模式和Emacs模式之间切换。 按照该readline的文档在它们之间进行切换,你都应该能够使用MCJ组合键但这似乎只让我切换到VI模式-在我的Mac(其中ESC被用作“元”键),它是:ESC + CTRL + J。 要切换回emacs模式可以使用铈但这似乎没有对我的工作-我不得不做,而不是MCE -在我的Mac是:ESC + CTRL + E。

仅供参考我的〜/ .inputrc文件设置如下:

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on


Answer 4:

ipython使用readline库,这使用是可配置的~/.inputrc文件。 你可以加

set editing-mode vi

该文件以使所有readline基于应用程序使用VI风格的按键组合,而不是Emacs的。



Answer 5:

我需要能够在IPython的5交互切换模式,我发现,你可以通过重新对飞提示经理这样做:

a = get_ipython().configurables[0]; a.editing_mode='vi'; a.init_prompt_toolkit_cli()


文章来源: How do I use vi keys in ipython under *nix?