Kann ich mit vi-ähnlichen hjkl-Tasten durch das Tab-Vervollständigungsmenü von zsh navigieren?

Kann ich mit vi-ähnlichen hjkl-Tasten durch das Tab-Vervollständigungsmenü von zsh navigieren?

Ich verwende die menübasierte Tab-Vervollständigung von zsh. Ich drücke Tabeinmal und eine Liste möglicher Vervollständigungen wird angezeigt. Wenn ich erneut drücke , kann ich mit den Pfeiltasten durch diese Liste navigieren. Ist es jedoch möglich, stattdessen mit den -ähnlichen Tasten , , , Tabzu navigieren ?viHJKL

Ich verwende den Emacs-Modus für die Befehlszeileneingabe mit bindkey -ein ~/.zshrc. Ich verwende auchzimmit zsh. Falls relevant, sind die Befehle, die das Tab-Vervollständigungssystem angeben,Hier.

Antwort1

Ja, das ist möglich, indem Sie Folgendes aktivieren 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

Antwort2

Am nächsten komme ich dem, indem ich CTRL- Nund CTRL- verwende P, um vorwärts und rückwärts durch die Liste der möglichen Vervollständigungen zu gehen, statt Tabund Shift- Tab. DiesIsteher viwie Navigation.

In einer Konfigurationsdatei .zsherreiche ich dies mit:

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

Und damit verbunden:

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

Hier sind die Dokumente für dieBindungen.

verwandte Informationen