Neden zsh içinde EDITOR olarak vim vermek klavye kısayollarını devre dışı bırakıyor?


23

Benim .zshrcşuna benziyor:

export EDITOR="/usr/bin/vim"

Şimdi bir terminal açıp ctrlasatırın başına gitmek gibi bir klavye kısayolu girdiğimde , çalışmıyor. Bunun yerine, dize ^A(veya girdiğim kısayollara bağlı olarak başka bir dize) terminale girer:

emlai:~ % ^A

Sözcüğü exportbenden kaldırmak, .zshrcklavye kısayollarının düzgün çalışmasını sağlar:

EDITOR="/usr/bin/vim"

Klavye kısayollarının da çalışmasını sağlamaktan EDITORbaşka bir şey olarak dışa aktarma vim, örneğin:

export EDITOR="/usr/bin/nano"

Bu neden oluyor?

Bunu da test ettim bashve klavye kısayolları her durumda düzgün çalışıyor.

Yanıtlar:


27

zshTıpkı çoğu modern kabuğun komut satırı düzenlemesi için iki farklı klavye eşlemesi arasında bir seçeneği vardır: vibiri ve emacsbiri. Bazı mermilerde (gibi tcshya da benzeri readlineolanlar gibi bash), emacsvarsayılan ve muhtemelen beklediğinizdir.

İle zshelde edersiniz emacsvarsayılan olarak moduna sürece $EDITORveya $VISUALiçeriyor vi(bir olmadığınızı vi/ nvi/ vim/ elviskullanıcı (aynı zamanda olsa vimacsve eğer $EDITORolduğunu ...), tercih varsayar modu)./home/victor/bin/emacszshvi

Belirli bir modu değerinden bağımsız olarak zorlamak için şunu $EDITORekleyin:

bindkey -e # for emacs
bindkey -v # for vi

veya daha taşınabilir bir eşdeğeri:

set -o emacs
set -o vi

senin için ~/.zshrc. Görmek

info -f zsh -n Keymaps

detaylar için.


İlginç. Kullanmak için herhangi bir neden var mı bindkeyüzerinde set -o?
zenith

@zenith, muhtemelen değil. bindkeytcsh ve orijinal yoldur. Bugünlerde eşdeğer olmalıdır.
Stéphane Chazelas,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.