Mejor manera de organizar los ajustes de tipo de archivo en .vim y .vimrc?
Pregunta
Voy a través de mis dotfiles vim para poner en orden para arriba. Me he dado cuenta de que a través del tiempo he añadido varios ajustes de tipo de archivo específicos en diversas formas inconsistentes. Supongamos que estoy personalizando para Python:
-
au BufRead,BufNewFile *.py (do something)
. No hacerlo así porque algunos archivos de Python que no tenga la terminación .py. -
au FileType python (do something)
. Esto parece una mejor opción, ya que no depende del archivo que tiene la terminación .py. El inconveniente es que Vim no sabe de algunos tipos de archivos. Puedo hacer que Vim reconocer tipos de archivos adicionales, pero también tengo varias formas inconsistentes de hacerlo:..vim/filetype.vim
un archivo, otra en.vim/after/filetype.vim
y varios comandosset filetype
en.vimrc
-
Añadir un archivo
.vim/ftplugin/python.vim
con los ajustes de tipo de archivo específicos. Entiendo la$VIMRUNTIME/ftplugin/python.vim
puede anular la configuración hago aquí. Un problema es que no estoy seguro de cómo este interactúa con.vim/filetype.vim
y.vim/after/filetype.vim
. -
Añadir un
.vim/after/ftplugin/python.vim
. Entiendo que esta se carga después$VIMRUNTIME/ftplugin/python.vim
por lo que puede sobrescribir la configuración de allí. Al igual que en el método anterior no estoy seguro de cómo interactúa con los archivosfiletype.vim
.
Así que tengo al menos cuatro maneras de hacer esto, sin mencionar los archivos de sintaxis y plugins tipo de archivo específicos. Me parece la mejor manera de hacer esto es poner mi configuración de tipo de archivo específicos en after/ftplugin
para que no se sobreescriben y filetypes.vim
en after
por la misma razón.
Sin embargo, antes de proceder me gustaría preguntar si alguien tiene sugerencias sobre la mejor manera de lidiar con los ajustes de tipo de archivo específicos.
Solución
almaceno mi configuración específico de Python está en $HOME/.vim/ftplugin/python.vim
, ya que no hago nada al conflicto con $VIMRUNTIME/ftplugin/python.vim
.
La integridad de los ajustes en un archivo href="http://vimdoc.sourceforge.net/htmldoc/usr_41.html#ftplugin" rel="noreferrer"> ftplugin
mantiene mi .vimrc
agradable y genérico y más fácil de mantener (que sigue siendo bastante grande después de más de diez años de uso Vim) .
Si desea overrule lo que los ftplugin
s con su distribución de Vim estableció, a continuación, $HOME/.vim/after/ftplugin/python.vim
es lo que quiere, ya que se lee after
éstos.
Del mismo modo $HOME/.vim/filetype.vim
se aplica antes $VIMRUNTIME/filetype.vim
y que a su vez se aplica antes $HOME/.vim/after/filetype.vim
.
:scriptnames
mostrará una lista de todos los nombres de script de origen, en el orden en que fueron de origen primero.
:help filetype
proporciona información muy amplia sobre todo esto.