Actuellement dans Bash, j'utilise set -o vi
pour activer le mode vi dans mon invite bash.
Comment faire pour que cela se passe dans ipython?
Remarque: si une réponse s'applique à tous les * nix, je supprimerai l'OS X du titre :)
Au cas où quelqu'un se promènerait 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'
On dirait qu'une solution fonctionne pour de nombreuses autres applications compatibles readline:
Définissez les éléments suivants dans votre
~/.inputrc
fichier:Source: http://www.jukie.net/bart/blog/20040326082602
la source
set convert-meta on
. Il entre en conflit avec l'entrée Unicode, donc si vous collez ou tapez unicode, vous pouvez déclencher divers événements, ce qui peut être surprenant. Par exemple, essayez de taper ü et vous verrez un résultat intéressant.set keymap vi
changements sur le keymap (c'est-à-dire le mode) que les commandes suivantes affecteront , etset convert-meta on
sur le comportement de certaines touches . Je ne sais pas si vous en avez besoin.set convert-meta on
(et tout ce qui se trouve en dessous de cette ligne) ne s'appliquera qu'au mode commande, pas au mode insertion.Vous pouvez également basculer de manière interactive entre le mode Vi et le mode Emacs. Selon la documentation readline pour basculer entre eux, vous êtes censé pouvoir utiliser la combinaison de touches MCj, mais cela semble seulement me permettre de passer en mode vi - sur mon Mac (où ESC est utilisé comme touche `` Meta '' ) c'est: ESC+ CTRL+ j. Pour revenir en mode Emacs, on peut utiliser Ce mais cela ne semble pas fonctionner pour moi - je devais plutôt faire MCe - sur mon Mac c'est: ESC+ CTRL+ e.
Pour info, mon ~ / .inputrc est configuré comme suit:
la source
ipython
utilise la bibliothèque readline et ceci est configurable à l'aide du~/.inputrc
fichier. Vous pouvez ajouterà ce fichier pour que toutes les
readline
applications basées utilisent des raccourcis clavier de style vi au lieu d'Emacs.la source
ipython
commuté à partirreadline
d'une bibliothèque de python appeléprompt_toolkit
dans5.0.0
si cela ne fonctionne plus.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 d'invites à la volée:
la source
Vous pouvez définir vi dans votre fichier de configuration de démarrage .ipython. Créez-en un si vous ne l'avez pas en ajoutant un fichier
~/.ipython/profile_default/startup/
appelé quelque chose commestart.py
. Voici un exemple:Cette dernière ligne concerne si vous utilisez ipython avec Django et que vous souhaitez importer tous vos modèles par défaut.
la source