Vi benzeri hjkl tuşlarıyla zsh'ın sekme tamamlama menüsünde gezinebilir miyim?


13

Zsh'ın menü tabanlı sekme tamamlamasını kullanıyorum. Bir Tabkez basıyorum ve olası tamamlamaların bir listesi beliriyor. Ben basarsanız Tabyine ben ok tuşlarıyla bu listeyi gezinebilirsiniz. Ancak, bunları gezinmek mümkündür vi-like H, J, K, Lyerine anahtarları?

Birlikte, komut satırı girişi için emacs modunu kullanmak bindkey -eiçinde ~/.zshrc. Ayrıca zsh ile zim kullanıyorum . İlgili ise, sekme tamamlama sistemini belirten komutlar buradadır .

Yanıtlar:


16

Evet, aşağıdakileri etkinleştirerek yapabilirsiniz menu select:

zstyle ':completion:*' menu select
zmodload zsh/complist
...
# use the vi navigation keys in menu completion
bindkey -M menuselect 'h' vi-backward-char
bindkey -M menuselect 'k' vi-up-line-or-history
bindkey -M menuselect 'l' vi-forward-char
bindkey -M menuselect 'j' vi-down-line-or-history

1 el çalıştırırsanız Bu iyi çalışıyor bindkeyterminalde komutları, ama sonunda onları koymak eğer başarısız ~/.zshrcolan, /home/sparhawk/.zshrc:bindkey:186: no such keymap `menuselect'.
Sparhawk

Tamamlama komut dosyalarını etkinleştirdiniz mi? Elipslerden önce komuta bakın ...
jasonwryan

Hattý mý demek istiyorsun zstyle? Evet, bende vardı ~/.zshrc.
Sparhawk


Ekleme autoload -Uz compinitve compinitçalışmadı, ancak sorunun etkinleştirilip etkinleştirilmediğinden emin değilim, çünkü (a) menü seçimi genel anlamda iyi çalışıyor ve her zaman var ve (b) bindkeyhatları daha sonra manuel olarak çalıştırabilirim, İşler. Ayrıca, (b) 'nin sadece sekmeye ilk bastığımda, muhtemelen tamamlama sistemini başlatmak, sonra çalıştırmak için çalıştığımı fark ettim bindkey…. Aksi takdirde yukarıdaki gibi başarısız olur ( bindkey: no such keymap `menuselect').
Sparhawk

4

Buna en yakın geldiğimde CTRL- Nve CTRL- Pyerine - Tabve Shift- yerine olası tamamlamalar listesinde ilerlemek Tab. Bu daha çok benzer bir vinavigasyon.

Bir yapılandırma .zshdosyasında şunu elde ederim:

bindkey '^n' expand-or-complete
bindkey '^p' reverse-menu-complete

Ve ilgili olarak:

bindkey '^k' up-history
bindkey '^j' down-history
bindkey '^h' backward-delete-char
bindkey '^w' backward-kill-word
bindkey '^r' history-incremental-search-backward

İşte ciltler için dokümanlar .


2
harika, teşekkürler. Ayrıca, modu burada kısıtlamak -M menuselectiçin bindkeykomuta eklenebilir .
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.