La documentation indique dans la section 18.4 Widgets , que "le travail d'un widget consiste simplement à effectuer une petite action". Mais je ne trouve pas de description générale sur la façon d'invoquer ces actions, c'est-à-dire comment appeler un widget.
J'ai vu dans des exemples (voir par exemple cette Q&R ) que les widgets peuvent être liés aux clés en utilisant bindkey KEY WIDGET
. Ensuite, on peut appeler le widget en utilisant KEY
.
Je voulais basculer set-local-history
et j'ai essayé:
$ zle set-local-history 1
zle: widgets can only be called when ZLE is active
zle -h
ne fonctionne pas, mais j'ai trouvé une description des arguments ici . Mais il ne semble pas qu'il y ait quelque chose comme ça --call
.
Qu'est-ce que je fais mal? Comment est-il possible d'appeler le widget sans bindkey? Comment imprimer l'état actuel? ( set-local-history
bascule l'état)
ZLE_STATE
est défini uniquement dans les fonctions de widget. J'ai affiné ma réponse. Quel est ton but? [Devinette: pour indiquer l'historique local / global dans mon invite, j'utilise un widget pour (i.) Définir une variable shell (cela est possible à l'intérieur des widgets) et (ii.) Exécuterzle set-local-history
.]*globalhistory*insert*
" au lieu de "*insert*globalhistory*
", d'après la lecture de la phrase avant l'exemple?Si vous utilisez,
tmux
vous pouvez appeler la touche liée avecsend-keys
.Exemples:
la source