Standard python interpreter has a vi command mode?

烂漫一生 提交于 2019-11-29 20:27:21

Ctrl-Alt-J switches from Emacs mode to Vi mode in readline programs.

Alternatively add "set editing-mode vi" to your ~/.inputrc

This kind of all depends on a few things.

First of all, the python shell uses readline, and as such, your ~/.inputrc is important here. That's the same with psql the PostgreSQL command-line interpreter and mysql the MySQL shell. All of those can be configured to use vi-style command bindings, with history etc.

<ESC> will put you into vi mode at the python shell once you've got your editing mode set to vi

You may need the following definition in your ~/.inputrc

set editing-mode vi

OSX info

OSX uses libedit which uses ~/.editrc. You can man editrc for more information.

For example, to mimick a popular key combination which searches in your history, you can add the following to your .editrc

bind "^R" em-inc-search-prev

For Mac OS X 10.10.3, python2.7, vi mode can be configured by placing "bind -v" in ~/.editrc. The last few paragraphs of the man page hint at this.

Use readline.parse_and_bind method. For example, try on python interactive console:

import readline
readline.parse_and_bind("set editing-mode vi")

It seems any command you can set in .inputrc you can set via this method too. I tried it in Python 2.7 and 3.5.1.

See also man readline

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!