Posso navegar no menu de conclusão de abas do zsh com teclas hjkl tipo vi?

10

Eu uso o preenchimento de guias baseado em menu do zsh. Eu pressiono Tab uma vez, e uma lista de possíveis conclusões é exibida. Se eu pressionar a tecla Tab novamente, posso navegar nesta lista com as teclas de seta. No entanto, é possível navegar nelas com o vi -like H , o J , o K , o L chaves em vez disso?

Eu uso o modo emacs para entrada de linha de comando, com bindkey -e em ~/.zshrc . Eu também uso zim com zsh. Se relevante, os comandos que especificam o sistema de conclusão de guias são aqui .

    
por Sparhawk 29.09.2016 / 05:49

2 respostas

11

Sim, você pode ativar 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
    
por 14.11.2016 / 23:01
4
O mais próximo que eu cheguei disso é usando CTRL - N e CTRL - P para mover para frente e para trás através da lista de completações possíveis, ao invés de Tab e Shift - Tab . Esta é mais vi , como navegação.

Em um arquivo config .zsh , eu consegui isso com:

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

E relacionado:

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

Aqui estão os documentos das ligações .

    
por 14.11.2016 / 22:55