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 ?vi
HJKL
Ich verwende den Emacs-Modus für die Befehlszeileneingabe mit bindkey -e
in ~/.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 vi
wie Navigation.
In einer Konfigurationsdatei .zsh
erreiche 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.