Wie kann ich mit vi-Tasten in ipython unter *nix?
Derzeit in der Bash benutze ich set -o vi
zum aktivieren von vi-Modus in meinen bash-prompt.
Wie bekomme ich diese geht in ipython?
Hinweis: Wenn eine Antwort gilt auf allen *nix, ich werde entfernen Sie die OS X vom Titel 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Fall, dass jemand wandert in kurzem hier, IPython 5.0 wechselte von readline zu prompt_toolkit, so dass eine aktualisierte Antwort auf diese Frage ist, übergeben Sie eine option:
... oder, um es Global in der Profil-Konfiguration (
~/.ipython/profile_default/ipython_config.py
; die schaffen es mitipython profile create
wenn Sie es nicht haben) mit:pip install ipython --upgrade
Sieht aus wie eine Lösung funktioniert für viele andere readline-kompatiblen apps:
Legen Sie die folgenden in Ihrem
~/.inputrc
Datei:Quelle: http://www.jukie.net/bart/blog/20040326082602
set convert-meta on
. Es Konflikte mit unicode-Eintrag, so dass, wenn Sie kopieren und einfügen, oder geben Sie unicode, die Sie auslösen können verschiedene Ereignisse, die möglicherweise überraschend sein. Zum Beispiel, versuchen Sie, geben Sie ü, und Sie werden sehen, ein Interessantes Ergebnis.set keymap vi
Veränderungen, die keymap (dh-Modus) die folgenden Befehle beeinflussen undset convert-meta on
änderungen, wie einige Tasten Verhalten sich. Ich bin mir nicht sicher, wenn Sie Sie brauchen.set convert-meta on
(und alles, was unterhalb dieser Linie) wird nur für den Befehls-Modus, nicht den Einfüge-Modus.Können Sie auch interaktiv wechseln zwischen den Vi-Modus und einen Emacs-Modus. Nach der readline-docs zwischen Ihnen zu wechseln, Sie sollen in der Lage sein, die Verwendung der M-C-j Tastenkombination, aber das scheint nur mir zu erlauben, wechseln Sie zu vi-Modus - auf meinem Mac (wo die ESC-Taste wird verwendet als 'Meta' - Taste) es ist: ESC+STRG+j. Das Umschalten in den Emacs-Modus kann man mit C-e, aber das hat nicht zu funktionieren scheinen für mich - ich musste stattdessen do M-C-e - auf meinem Mac ist es: ESC+STRG+e.
FYI meine ~/.inputrc ist wie folgt eingerichtet:
ipython
verwendet die readline-Bibliothek und diese ist konfigurierbar mit der~/.inputrc
- Datei. Sie können hinzufügenauf die Datei, um alle
readline
basierte Anwendungen, vi-Stil Tastaturbelegung statt Emacs.ipython
wechselte vonreadline
um eine python-Bibliothek namensprompt_toolkit
im5.0.0
so dass diese nicht mehr funktioniert.Ich brauchte, um in der Lage sein, um die Modi zu wechseln interaktiv in IPython 5 und ich fand Sie so tun können, durch die Neuerstellung der Eingabeaufforderung manager-on-the-fly:
Können Sie das vi in Ihrer .ipython start-up-config-Datei. Erstellen Sie ein, wenn Sie nicht haben, Sie es durch hinzufügen einer Datei zu
~/.ipython/profile_default/startup/
heißt so etwas wiestart.py
. Hier ist ein Beispiel:Letzten Zeile ist, wenn Sie ipython mit Django, und möchten, importieren Sie alle Ihre Modelle standardmäßig.