107 votes

Comment utiliser les clés vi dans ipython sous *nix ?

Actuellement dans Bash, j'utilise set -o vi pour activer le mode vi dans mon invite de bash.

Comment faire pour que ça se passe en ipython ?

194voto

imiric Points 696

Si quelqu'un se promène ici récemment, IPython 5.0 est passé de readline à prompt_toolkit, donc une réponse mise à jour à cette question est de passer une option :

$ ipython --TerminalInteractiveShell.editing_mode=vi

... ou pour le définir globalement dans la configuration du profil (~/.ipython/profile_default/ipython_config.py ; créez-le avec ipython profile create si vous ne l'avez pas) avec :

c.TerminalInteractiveShell.editing_mode = 'vi'

33voto

Gerald Kaszuba Points 9769

Il semble qu'une solution fonctionne pour de nombreuses autres applications compatibles Readline :

Définissez ce qui suit dans votre fichier ~/.inputrc :

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

Source : http://www.jukie.net/bart/blog/20040326082602

9voto

Noufal Ibrahim Points 32200

ipython utilise la bibliothèque readline et celle-ci est configurable ~/.inputrc. Vous pouvez ajouter

set editing-mode vi

à ce fichier pour que toutes les applications basées sur readline utilisent des raccourcis clavier de style vi au lieu d'Emacs.

9voto

Lex R Points 498

J'avais besoin de pouvoir changer de mode de manière interactive dans IPython 5 et j'ai trouvé que vous pouvez le faire en recréant le gestionnaire prompt à la volée :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X