¿Puedo navegar por el menú de finalización de pestañas de zsh con teclas hjkl similares a vi?

¿Puedo navegar por el menú de finalización de pestañas de zsh con teclas hjkl similares a vi?

Utilizo la finalización de pestañas basada en menús de zsh. Presiono Tabuna vez y aparece una lista de posibles finalizaciones. Si presiono Tabnuevamente, puedo navegar por esta lista con las teclas de flecha. Sin embargo, ¿es posible navegar por ellos con las teclas vi-like H, J,, en su lugar?KL

Utilizo el modo emacs para la entrada de línea de comandos, con bindkey -ein ~/.zshrc. yo también usozimcon zsh. Si es relevante, los comandos que especifican el sistema de finalización de tabulaciones sonaquí.

Respuesta1

Sí, puedes hacerlo habilitando 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

Respuesta2

Lo más cerca que he estado de esto es usar CTRL- Ny CTRL- Ppara avanzar y retroceder a través de la lista de posibles finalizaciones, en lugar de Taby Shift- Tab. Esteesmás viparecido a la navegación.

En un .zsharchivo de configuración logro esto con:

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

Y 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

Aquí están los documentos para elfijaciones.

información relacionada