¿Cómo enumerar las opciones disponibles de un complemento?


10

Recientemente descubrí que YouCompleteMetiene una g:ycm_autoclose_preview_window_after_insertionopción que oculta automáticamente la ventana de vista previa de la documentación después de salir del modo de inserción, y recientemente comencé a usar vim, así que esta fue la primera vez que configuré una opción.

Así que me preguntaba si otros complementos que he acumulado en mi entorno vim tienen opciones disponibles, sin buscarlos manualmente.

¿Se registran globalmente cuando se inicia vim, para que un comando que los enumera esté disponible, o esto no se puede hacer?


No puedes Las variables para complementos deben documentarse. No hay forma de saber qué variables se usan sin leer el código.
Christian Brabandt

Respuestas:


6

Vim no proporciona ninguna forma de conocer todas las opciones posibles de complementos.

Como escritor de complementos, puedo decirte que esto es bastante complejo, ya que hay muchas formas diferentes de proceder. Por ejemplo, consideramos que si el usuario final no ha proporcionado un valor para una opción .vimrc, forzamos esta opción a existir y que sea igual a un valor predeterminado, o podemos decir: "o tome el valor establecido por el usuario final, o use un valor predeterminado codificado ".

Con ese primer enfoque, el usuario final puede ver la lista de opciones disponibles con un c_CTRL-D, o c_TAB, etc.

Cada vez más complementos eligen organizar todas sus opciones en diccionarios. es decir, en lugar de tener g:plugin_foo_optiony g:plugin_bar_option, tenemos g:plugin.foo_optiony g:plugin.bar_option. Esto evita contaminar la lista g:de opciones globales, pero perdemos el autocompletado de la línea de comandos (eventualmente puedo abrir un problema del tema, en vim github).

Hasta ahora solo he hablado de opciones globales. La mayoría de los complementos no intentan admitir opciones más específicas, incluso si deberían haberlo hecho. Por ejemplo, lamento que ni YouCompleteMe ni alternativa , ni muchos otros complementos, usen opciones específicas del proyecto en lugar de opciones globales. De hecho, dependiendo del proyecto en el que estoy trabajando, quiero establecer sus respectivas opciones a diferentes valores. Desafortunadamente, este no es un flujo de trabajo que hayan considerado. En mis complementos, muchas opciones pueden especializarse en base a proyectos o en búfer. Últimamente se me ocurrió un experimento sobre el tema. Pero incluso con el par g:plugin_option+ simple y habitual b:plugin_option, es casi imposible conocer todas las opciones disponibles.

A veces trato de ofrecer comandos que ayudan a configurar las opciones como lo hice con build-tools-wrappers, o incluso mostrar algunas opciones en el menú (cuando uso gvim), pero está muy lejos de ser perfecto.

Me temo que la documentación es lo mejor disponible. Incluso puedes probar a :h pluginname^D. Es probablemente el mejor enfoque disponible.


Gran explicación de las opciones detrás de escena. ¡Y en :h pluginnamerealidad es muy bueno! Por lo tanto, no tengo que alejarme de VIM varias veces para leer la documentación de diferentes complementos.
Iulian Onofrei

2

Vim no tiene referencia de las opciones disponibles. Lo mejor que puede hacer es ver qué se ha inicializado.

Para las opciones integradas de Vim está el comando :set. De :h :set:

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

No verá todas las opciones disponibles, solo las que modificó.

También puede usar :letpara enumerar el valor de todas las variables declaradas y :let g:para una lista de las variables globales. (Consulte :h E121para obtener una lista de la variable que puede mostrar).

Tenga en cuenta que estas listas no siempre son fáciles de leer / analizar. Para los complementos, su mejor opción es leer la documentación y encontrar la opción que necesita.

También puede interesarle este consejo de wikia sobre cómo mostrar el entorno vim


Acepté la otra respuesta, ya que es más detallada, aunque esto tiene comandos interesantes relacionados con mi pregunta que podrían ayudar.
Iulian Onofrei
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.