Achèvement de Zsh, activation de la touche Maj

13

Lorsque zsh vous montre un menu des achèvements possibles, j'aimerais qu'il me permette shift-tabd'accéder aux entrées de fin précédentes - existe-t-il une option qui contrôle quelle clé est utilisée pour accéder aux entrées de fin précédentes?

Et si oui, de quoi aurais-je besoin pour ajouter à mon ~/.zshrc fichier afin de le configurer.

Si cela fait une différence, je peux actuellement naviguer dans un menu d'achèvement à l'aide des touches fléchées, mais je n'aime pas le faire car les touches fléchées sont déplacées et difficiles à utiliser.

Alexej Magura
la source

Réponses:

13

vous souhaitez lier la commande reverse-menu-completede l' éditeur au menuselectclavier.

bindkey -M menuselect '^[[Z' reverse-menu-complete

Je ne sais pas à quel point la séquence d'échappement ^[[Zest portable , vous pouvez donc vérifier terminfo (5) pour voir s'il existe un moyen d'utiliser le $terminfotableau pour le lier correctement.

Notez que le menuselectclavier est disponible après avoir chargé le zsh/complistmodule. Si vous avez configuré le système de complétion avec compinstall, ce module est généralement automatiquement chargé la première fois que vous terminez quelque chose. Pour pouvoir ajouter cette liaison à votre ~/.zshrc, vous devez d'abord y charger manuellement le module avec:

zmodload zsh/complist
llua
la source
^[[Zest également shift-tabsur mon ordinateur, donc ne vous inquiétez pas s'il n'est pas portable; Merci. :)
Alexej Magura
1
J'obtiens l'erreur suivante lorsque j'invoque zshaprès avoir ajouté la bindkeyligne à mon ~/.zshrcfichier: ~/.zshrc:bindkey:190: no such keymap `menuselect'
Alexej Magura
2
Ce serait "${terminfo[kcbt]}".
Thomas Dickey