如何在* nix下的ipython中使用vi密钥?
目前在Bash中,我使用set -o vi
在我的bash提示符中启用vi模式。
我如何得到ipython呢?
注意:如果答案适用于所有* nix,我将从标题中删除OS X
如果有人最近在这里徘徊, IPython 5.0从readline切换到prompt_toolkit ,所以对这个问题的更新答案是通过一个选项:
$ ipython --TerminalInteractiveShell.editing_mode=vi
…或在configuration文件configuration中全局设置( ~/.ipython/profile_default/ipython_config.py
;使用ipython profile create
如果没有的话):
c.TerminalInteractiveShell.editing_mode = 'vi'
看起来像一个解决scheme适用于许多其他readline兼容的应用程序:
在~/.inputrc
文件中设置以下内容:
set editing-mode vi set keymap vi set convert-meta on
资料来源: http : //www.jukie.net/bart/blog/20040326082602
您也可以交互式切换Vi模式和Emacs模式。 根据readline文档切换他们之间,你应该能够使用MCj组合键,但似乎只能让我切换到vi模式 – 在我的Mac(其中ESC被用作'Meta'键)它是: ESC + CTRL + j 。 要切换回Emacs模式,可以使用Ce,但这似乎不适用于我 – 我不得不做MCe – 在我的Mac上是: ESC + CTRL + e 。
仅供参考,我的〜/ .inputrc设置如下:
set meta-flag on set input-meta on set convert-meta off set output-meta on
ipython
使用readline库,这可以使用~/.inputrc
文件进行configuration。 你可以加
set editing-mode vi
到该文件,使所有基于readline
的应用程序使用vi风格的键绑定而不是Emacs。
我需要能够在IPython 5中以交互方式切换模式,并且我发现您可以通过即时重新创build提示pipe理器来实现:
a = get_ipython().configurables[0]; a.editing_mode='vi'; a.init_prompt_toolkit_cli()