Saat ini di Bash saya gunakan set -o vi
untuk mengaktifkan mode vi di prompt bash saya.
Bagaimana cara melakukannya di ipython?
Catatan: Jika jawaban berlaku untuk semua * nix, saya akan menghapus OS X dari judul :)
Jika seseorang baru-baru ini berkeliaran di sini, IPython 5.0 beralih dari readline ke prompt_toolkit , jadi jawaban yang diperbarui untuk pertanyaan ini adalah memberikan opsi:
$ ipython --TerminalInteractiveShell.editing_mode=vi
... atau untuk menyetelnya secara global dalam konfigurasi profil ( ~/.ipython/profile_default/ipython_config.py
; buat dengan ipython profile create
jika Anda tidak memilikinya) dengan:
c.TerminalInteractiveShell.editing_mode = 'vi'
Sepertinya solusi berfungsi untuk banyak aplikasi lain yang kompatibel dengan garis baca:
Setel yang berikut di
~/.inputrc
file Anda :Sumber: http://www.jukie.net/bart/blog/20040326082602
sumber
set convert-meta on
. Ini bentrok dengan entri unicode, jadi jika Anda menempel atau mengetik unicode, Anda dapat memicu berbagai peristiwa, yang mungkin mengejutkan. Misalnya, coba ketik ü, dan Anda akan melihat hasil yang menarik.set keymap vi
perubahan peta kunci mana (yaitu mode) yang akan dipengaruhi oleh perintah berikut , danset convert-meta on
mengubah perilaku beberapa kunci . Saya tidak yakin apakah Anda membutuhkannya.set convert-meta on
(dan apa pun di bawah baris itu) hanya akan berlaku untuk mode perintah, bukan mode sisipkan.Anda juga dapat secara interaktif beralih antara mode Vi dan mode Emacs. Menurut dokumen readline untuk beralih di antara mereka, Anda seharusnya dapat menggunakan kombinasi tombol MCj tetapi itu hanya memungkinkan saya untuk beralih ke mode-vi - di Mac saya (di mana ESC digunakan sebagai tombol 'Meta' ) itu adalah: ESC+ CTRL+ j. Untuk beralih kembali ke mode Emacs, seseorang dapat menggunakan Ce tetapi tampaknya tidak berhasil untuk saya - saya malah harus melakukan MCe - di Mac saya: ESC+ CTRL+ e.
FYI ~ / .inputrc saya diatur sebagai berikut:
sumber
ipython
menggunakan pustaka readline dan ini dapat dikonfigurasi menggunakan~/.inputrc
file. Anda dapat menambahkanke file tersebut untuk membuat semua
readline
aplikasi berbasis menggunakan keybindings gaya vi sebagai ganti Emacs.sumber
ipython
beralih darireadline
perpustakaan python disebutprompt_toolkit
dalam5.0.0
jadi ini tidak lagi bekerja.Saya harus dapat beralih mode secara interaktif di IPython 5 dan saya menemukan Anda dapat melakukannya dengan membuat ulang manajer cepat dengan cepat:
sumber
Anda dapat mengatur vi di file konfigurasi start-up .ipython. Buat satu jika Anda tidak memilikinya dengan menambahkan file ke
~/.ipython/profile_default/startup/
bernama sesuatu sepertistart.py
. Berikut contohnya:Baris terakhir itu adalah jika Anda menggunakan ipython dengan Django, dan ingin mengimpor semua model Anda secara default.
sumber