2010-08-26 8 views
1

Quelle est la meilleure façon d'utiliser zsh completion en dehors de zsh? Je sais que je peux redéfinir compadd intégré avec fonction personnalisée et analyser ses options, mais y at-il un meilleur moyen?Utilisation de zsh completion en dehors de zsh

Je veux ajouter omni completion pour les scripts shell à Vim basé sur le système de complétion zsh.

+0

Cher $ DEITY, s'il vous plaît dites-moi que vous savez comment faire cela. J'aimerais avoir des zstyles partout. – chiggsy

+0

@chiggsy Tout ce que je sais c'est que si je passe beaucoup de temps à écrire des hacks qui remplacent plusieurs commandes intégrées (un compadd ne suffit pas) et à réimplémenter la fonctionnalité qui est faite par eux, je pourrais faire le travail. Ce n'est pas quelque chose que je suis prêt à passer du temps. – ZyX

+0

Alors ... Question de clarification: Est-ce que je vous comprends correctement pour penser que vous demandez un moyen d'accéder au système de complétion interactive de zsh à partir, par exemple, de l'invite de commande dans vim? Cela semble ... comme vim aurait besoin d'être modifié pour lier à lui ... peut-être qu'il peut être bulled out comme une bibliothèque, que zsh et vim pourraient tous deux utiliser ?? – lindes

Répondre

0

Cette même question a été posée sur la liste de diffusion zsh le 23 août 2004: http://www.zsh.org/mla/users/2004/msg00917.html. Au moins, je crois que c'est la même question. Corrige moi si je me trompe.

Fondamentalement, le shell bash utilise readline pour son édition en ligne, mais zsh uses its own and more powerful zle.

Cette question vous demande si zle peut être utilisé pour l'entrée d'un programme de ligne de commande au lieu de devoir l'écrire à partir de zéro.

Il existe 2 réponses à cette question. On dit:

"Pour un exemple pratique, voir Fonctions/Misc/nslookup dans la distribution zsh."

L'autre réponse est de la asker originale et il dit:

« Si seulement « preexec » pourrait accéder TAMPON, écrivant la commande ligne pourrait être écrit nulle part, mais depuis TAMPON est uniquement accessible modifié à l'intérieur de l'achèvement widgets, cela devrait être fait avec un widget, en remplaçant «accepter-ligne» ou quelque chose comme ça. "

Espérons que cela aide.

Questions connexes