如何在IPython中获取当前的Vi模式

时间:2017-09-09 20:49:33

标签: ipython powerline

我正在为IPython写一个Powerline主题,我想在提示中显示Vi模式。这将是有用的,但它可能吗? IPython提供了一种方法吗?我无法找到它。

这就是我想要的(现在INSERT段是硬编码的): enter image description here

1 个答案:

答案 0 :(得分:0)

由于IPython已经切换到prompt_toolkit,但实际上并不尊重.inputrc,有飞机可以这样做,但prompt_toolkit(PTK)作者需要找时间(或资金到努力工作......)。

PTK有一个不完美的vi输入模式(Bug报告和公关欢迎),可以在IPython中启用。不仅仅是给你答案,这里是如何自己找到它。使用ipython选项运行--help-all,使用vi运行grep,并在(-A2)之后和之前(-B2)之后保留几行:

$ ipython --help-all | grep vi -B2 -A2
...snip...
--TerminalInteractiveShell.editing_mode=<Unicode>
    Default: 'emacs'
    Shortcut style to use at the prompt. 'vi' or 'emacs'.
...snip...

所以你去,你可以用--TerminalInteractiveShell.editing_mode='vi'启动IPython,或者在IPython配置文件c.TerminalInteractiveShell.editing_mode='vi'中设置配置选项。

您还可以在online IPython documentation中找到所有配置选项。