¿Cuándo usar el directorio after /?

14

Entiendo que es el lugar para poner las cosas que deberían tener la última palabra y no ser anuladas por otra fuente, pero no tengo claro cómo decidir cuándo poner algo, digamos, en ~/.vim/after/ftplugin/lugar de hacerlo ~/.vim/ftplugin/.

¿Las personas generalmente usan ~/.vim/ftplugin/y solo mueven cosas ~/.vim/after/ftplugin/si observan un comportamiento no deseado, o simplemente lo colocan todo en el directorio posterior de inmediato?

ivan
fuente

Respuestas:

20

En general, si desea agregar su propio complemento, o reemplazar un complemento estándar con el suyo, entraría en ~/.vim/plugino ~/.vim/ftplugin. Si, por el contrario, desea mantener la funcionalidad de un complemento existente pero agregarlo, o cambiar solo algunas configuraciones realizadas por él, entonces su complemento entrará en ~/.vim/after/plugino ~/.vim/after/ftplugin.

garyjohn
fuente
Por alguna razón, siempre asumí que Vim buscó el runtimepath y obtuvo cada archivo que coincidía con los criterios de búsqueda, en lugar de solo buscar la primera coincidencia que encontró. Parece que las cosas en el directorio posterior reciben ese tipo de tratamiento "además de", pero tal vez todo lo demás se trata más como la variable PATH de Unix, donde gana la primera coincidencia.
ivan
55
Vim hace fuente de cada archivo que coincide con los criterios de búsqueda, pero los plugins escritas apropiadamente para tener una prueba de cerca de su parte superior del formulario, if exists("g:loaded_<plugin name>") finish endif let g:loaded_<plugin name> = 1. El complemento que se carga primero "gana" y los complementos posteriores con el mismo nombre salen temprano a través del finishcomando. Así es como un complemento en su ~/.vim/plugindirectorio, por ejemplo, puede evitar que un complemento se $VIMRUNTIME/plugincargue por completo. Esa prueba no está incluida en los afterarchivos de complemento.
garyjohn
Ok, creo que lo entiendo ahora. Dado que todos los archivos coincidentes se obtendrán, use una finishcláusula de protección cuando desee cargar solo la primera coincidencia, y use el directorio posterior ( sin una finishcláusula de protección) cuando necesite anular una configuración afectada por uno de los otros fuentes.
ivan
1

si vanilla vim reconoce un cierto tipo de archivo y desea modificar el comportamiento enviado, entonces su propia configuración entrará en ~/.vim/after/ftplugin/

Naumann
fuente