He pasado por la autocmd.txtayuda, pero la información sobre esto está dispersa y no siempre está presente (por ejemplo, con BufRead).
¿Podría alguien que entienda bien esto enumerar el orden de estos eventos, tal vez con las condiciones marcadas en paréntesis, como
WinEnter
BufEnter (if this window is for a different buffer than the current)
y así sucesivamente, para referencia fácil?
Nota (copiada de mi propio comentario a continuación) : no estoy hablando de explicaciones individuales de ellos, que están bien, sino de cómo interactúan entre sí y en qué orden suceden. Por ejemplo, WinEnterdice "Vim ejecuta los comandos automáticos de BufEnter después de los comandos automáticos de WinEnter", TabEnterdice "Después de activar el WinEnter y antes de activar el evento BufEnter", todo está disperso así en muchos lugares. Y a veces no se menciona en absoluto (por ejemplo BufRead, no menciona si se ejecuta después de BufEnter o antes; tal vez un experto puede inferirlo de otra información allí, pero no puedo.
Por lo tanto, mi intención aquí es cree una referencia única y simple para el orden de estos eventos que los no expertos puedan buscar rápidamente,autocmd especificaciones del evento
fuente

WinEnterdice "Vim ejecuta los comandos automáticos de BufEnter después de los comandos automáticos de WinEnter",TabEnterdice "Después de activar el WinEnter y antes de activar el evento BufEnter", todo está disperso así en muchos lugares. Y a veces no se menciona en absoluto (por ej.BufReadNo menciona si se ejecuta después de BufEnter o antes - tal vez un experto puede inferir que de alguna otra pieza de información, pero no puedo.autocmdespecificaciones de eventos.Respuestas:
Para completar la respuesta @sundar:
Puede registrar el orden de los eventos simplemente con una función de registro:
Vea el archivo completo aquí: https://gist.github.com/nobe4/aa8313fe98ca8821afad
Entonces puede
tail -f logy obtiene una actividad de eventos de autocomando en tiempo real.fuente
Intenté buscar en Google esto con diferentes conjuntos de palabras clave, y obtuve oro en uno de esos intentos con este resultado: http://www.ibm.com/developerworks/library/l-vim-script-5/
Específicamente, esta parte es relevante para la pregunta actual:
Todavía no es del todo completo (por ejemplo, no se menciona a
BufReadakaBufReadPost, pero supongo que vendría despuésBufReadCmd), pero es un excelente comienzo.Sin embargo, una información crucial que falta es cómo los eventos
FileTypeySyntaxautocmd interactúan con esto (suponiendo quefiletypeyasyntaxestán activados , y se abre un nuevo archivo cuyo tipo de archivo y sintaxis son conocidos por Vim).fuente
autocmds en varios archivos no está bien definido. E incluso con un solo archivo, el orden ha cambiado varias veces con la versión de Vim. Los problemas que esto puede (y causa) causar complementos se han discutido hasta la muerte en vim_dev, y el diseño general no va a cambiar en el futuro predecible. En cuanto a obtener una comprensión integral , bueno, hay 139 ocurrenciasapply_autocmdsen las fuentes de Vim 7.4.827. Buena suerte con eso.autocmds en Vim son un desastre, no creo que sea realmente posible escribir una referencia definitiva, excepto por unos pocos casos simples. Supongo que todos se conforman con "generalmente funciona" y se encogen de hombros cuando no es así. En cuanto a neovim, personalmente tengo sentimientos encontrados sobre el proyecto. No he mirado el código recientemente; Supongo que puede obtener una respuesta sobre su rastreador de problemas.