Vim non fornisce alcun modo per conoscere tutte le possibili opzioni di plugin.
Come scrittore di plugin posso dirti che è piuttosto complesso in quanto ci sono molti modi diversi di procedere. Ad esempio, riteniamo che se l'utente finale non ha fornito un valore per un'opzione nella sua opzione .vimrc
, forziamo questa opzione a esistere e ad essere uguale a un valore predefinito, oppure possiamo dire: "o prendi il valore impostato da l'utente finale o utilizzare un valore predefinito codificato ".
Con questo primo approccio, l'utente finale può visualizzare l'elenco delle opzioni disponibili con un c_CTRL-D
, o c_TAB
, ecc.
Sempre più plugin scelgono di organizzare tutte le loro opzioni in dizionari. cioè, invece di avere g:plugin_foo_option
e g:plugin_bar_option
, abbiamo g:plugin.foo_option
e g:plugin.bar_option
. Questo evita di inquinare l'elenco g:
delle opzioni globali, ma perdiamo il completamento automatico della riga di comando (potrei eventualmente aprire un problema dell'argomento, su Vim Github).
Finora ho parlato solo di opzioni globali. La maggior parte dei plugin non prova a supportare opzioni più specifiche anche se avrebbero dovuto farlo. Ad esempio, mi dispiace che né YouCompleteMe né alternati , né molti altri plug-in, utilizzino opzioni specifiche del progetto anziché opzioni globali. In effetti, a seconda del progetto su cui sto lavorando, voglio impostare le rispettive opzioni su valori diversi. Sfortunatamente, questo non è un flusso di lavoro che hanno preso in considerazione. Nei miei plugin, molte opzioni possono essere specializzate in base al progetto o in base al buffer. Ultimamente ho escogitato un esperimento sull'argomento. Ma anche con la solita e semplice g:plugin_option
+ b:plugin_option
coppia, è quasi impossibile conoscere tutte le opzioni disponibili.
A volte provo a offrire comandi che aiutano a impostare le opzioni come ho fatto con i wrapper build-tools, o anche a visualizzare alcune opzioni nel menu (quando uso gvim), ma è davvero lungi dall'essere perfetto.
Temo che la documentazione sia la migliore cosa disponibile. Puoi anche provare a :h pluginname^D
. È probabilmente l'approccio migliore disponibile.