Şu anda Bash'de set -o vi
bash istemimde vi modunu etkinleştirmek için kullanıyorum .
Bunu ipython'da nasıl çalıştırırım?
Not: Tüm * nix'ler için bir yanıt geçerliyse, OS X'i başlıktan kaldıracağım :)
Yanıtlar:
Yakın zamanda burada birinin dolaşması durumunda, IPython 5.0 readline'dan istem_toolkit'e geçmiştir , bu nedenle bu sorunun güncellenmiş cevabı bir seçeneği geçmek olacaktır:
$ ipython --TerminalInteractiveShell.editing_mode=vi
... veya profil yapılandırmasında global olarak ayarlamak için ( ~/.ipython/profile_default/ipython_config.py
; ipython profile create
yoksa , ile oluşturun ):
c.TerminalInteractiveShell.editing_mode = 'vi'
Görünüşe göre bir çözüm diğer birçok okuma satırı uyumlu uygulama için çalışıyor:
~/.inputrc
Dosyanızda aşağıdakileri ayarlayın :
set editing-mode vi
set keymap vi
set convert-meta on
set convert-meta on
. Unicode girişiyle çakışır, bu nedenle unicode yapıştırır veya yazarsanız, şaşırtıcı olabilecek çeşitli olayları tetikleyebilirsiniz. Örneğin ü yazmayı deneyin, ilginç bir sonuç göreceksiniz.
set keymap vi
Aşağıdaki komutların hangi tuş eşlemini (yani mod) etkileyeceğini ve set convert-meta on
bazı tuşların nasıl davranacağını değiştiriyor gibi görünüyor . Onlara ihtiyacın olup olmadığından emin değilim.
set convert-meta on
(ve bu satırın altındaki her şey) ekleme modu için değil, yalnızca komut modu için geçerli olacaktır.
Ayrıca, Vi modu ve Emacs modu arasında etkileşimli olarak geçiş yapabilirsiniz. Bunlar arasında geçiş yapmak için readline belgelerine göre MCj tuş kombinasyonunu kullanabilmeniz gerekiyor, ancak bu yalnızca vi moduna geçmeme izin veriyor - Mac'imde (ESC, 'Meta' anahtarı olarak kullanılır) ) bu: ESC+ CTRL+ j. Emacs moduna geri dönmek için Ce kullanılabilir, ancak bu benim için işe yaramadı - bunun yerine MCe yapmak zorunda kaldım - Mac'imde: ESC+ CTRL+ e.
Bilginize ~ / .inputrc şu şekilde kurulur:
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
ipython
readline kitaplığını kullanır ve bu, ~/.inputrc
dosya kullanılarak yapılandırılabilir . Ekleyebilirsin
set editing-mode vi
tüm readline
tabanlı uygulamaların Emacs yerine vi tarzı tuş atamaları kullanmasını sağlamak için bu dosyaya ekleyin.
ipython
dan anahtarlamalı readline
adlı bir piton kütüphanesine prompt_toolkit
de 5.0.0
bu artık çalışmıyor bu yüzden.
Vi'yi .ipython başlangıç yapılandırma dosyanızda ayarlayabilirsiniz. Eğer sahip değilseniz, gibi bir ~/.ipython/profile_default/startup/
şey için bir dosya ekleyerek bir tane oluşturun start.py
. İşte bir örnek:
# Initializing script for ipython in ~/.ipython/profile_default/startup/
from IPython import get_ipython
ipython = get_ipython()
# If in ipython, set vi and load autoreload extension
if 'ipython' in globals():
ipython.editing_mode = 'vi'
ipython.magic('load_ext autoreload')
ipython.magic('autoreload 2')
from Myapp.models import *
Bu son satır, ipython'u Django ile kullanıyorsanız ve varsayılan olarak tüm modellerinizi içe aktarmak istiyorsanız.