Comment lister les options disponibles d'un plugin?

10

J'ai récemment découvert qu'il y YouCompleteMeavait une g:ycm_autoclose_preview_window_after_insertionoption qui masque automatiquement la fenêtre d'aperçu de la documentation après avoir quitté le mode d'insertion, et j'ai également récemment commencé à utiliser vim, c'était donc la première fois que je définissais une option.

Je me suis donc demandé si d'autres plugins que j'avais bourrés dans mon environnement vim avaient des options disponibles, sans les chercher manuellement.

Sont-ils enregistrés globalement au démarrage de vim, afin qu'une commande qui les répertorie soit disponible, ou cela ne peut pas être fait?

Iulian Onofrei
la source
Tu ne peux pas. Les variables des plugins doivent être documentées. Il n'y a aucun moyen de savoir quelles variables sont utilisées sans lire le code.
Christian Brabandt

Réponses:

6

Vim ne fournit aucun moyen de connaître toutes les options de plugin possibles.

En tant que rédacteur de plugin, je peux vous dire que c'est assez complexe car il existe de nombreuses façons de procéder. Par exemple, soit nous considérons que si l'utilisateur final n'a pas fourni de valeur pour une option dans son, .vimrcalors nous forçons cette option à exister et à être égale à une valeur par défaut, ou nous pouvons dire: "soit prendre la valeur définie par l'utilisateur final, ou utilisez une valeur par défaut codée en dur ".

Avec cette première approche, l'utilisateur final peut voir la liste des options disponibles avec un c_CTRL-D, ou c_TAB, etc.

De plus en plus de plugins choisissent d'organiser toutes leurs options dans des dictionnaires. c'est-à-dire, au lieu d'avoir g:plugin_foo_optionet g:plugin_bar_option, nous avons g:plugin.foo_optionet g:plugin.bar_option. Cela évite de polluer la liste g:des options globales, mais on perd l'auto-complétion en ligne de commande (je pourrai éventuellement ouvrir un problème sur le sujet, sur vim github).

Jusqu'à présent, je n'ai parlé que d'options globales. La plupart des plugins n'essaient pas de prendre en charge des options plus spécifiques même s'ils auraient dû le faire. Par exemple, je regrette que ni YouCompleteMe ni alternatif , ni de nombreux autres plugins, n'utilisent des options spécifiques au projet au lieu des options globales. En effet, selon le projet sur lequel je travaille, je souhaite définir leurs options respectives sur des valeurs différentes. Malheureusement, ce n'est pas un flux de travail qu'ils ont envisagé. Dans mes plugins, de nombreuses options peuvent être spécialisées sur la base de projets ou de tampons. Dernièrement, je suis venu avec une expérience sur le sujet. Mais même avec la paire g:plugin_option+ simple et habituelle b:plugin_option, il est presque impossible de connaître toutes les options disponibles.

Parfois, j'essaie de proposer des commandes qui aident à définir des options comme je l'ai fait avec build-tools-wrappers, ou même d'afficher certaines options dans le menu (lors de l'utilisation de gvim), mais c'est vraiment loin d'être parfait.

J'ai peur que la documentation soit la meilleure chose disponible. Vous pouvez même essayer un :h pluginname^D. C'est probablement la meilleure approche disponible.

Luc Hermitte
la source
Grande explication des options dans les coulisses. Et :h pluginnamec'est vraiment très bien! Je n'ai donc pas à m'éloigner de vim plusieurs fois pour lire la documentation de différents plugins.
Iulian Onofrei
2

Vim n'a pas de référentiel des options disponibles. le mieux que vous puissiez faire est de voir ce qui a été initialisé.

Pour les options intégrées de Vim, il y a la commande :set. De :h :set:

:se[t] Show all options that differ from their default value.

Vous ne verrez pas toutes les options disponibles, seulement celles que vous avez modifiées.

Vous pouvez également utiliser :letpour lister la valeur de toutes les variables déclarées et :let g:pour une liste des variables globales. (Voir :h E121pour une liste de la variable que vous pouvez afficher).

Notez que ces listes ne sont pas toujours faciles à lire / analyser. Pour les plugins, votre meilleure option est de lire la documentation et de trouver l'option dont vous avez besoin.

Vous pouvez également être intéressé par cette astuce wikia comment afficher l'environnement vim

statox
la source
Accepté l'autre réponse car elle est plus verbeuse, bien que cela ait des commandes intéressantes liées à ma question qui pourraient aider.
Iulian Onofrei