Según la respuesta aceptada a esta pregunta , estoy tratando de usar modelines en vim para forzar la detección del tipo de archivo en algunos archivos.
Por ejemplo, en la parte superior de un archivo llamado gitconfig
(tenga en cuenta que no hay un encabezado .
), tengo la siguiente línea:
# vim: set filetype=gitconfig :
modeline
está habilitado en mi sistema. Sin embargo, cuando abro el archivo en vim, set filetype?
devuelve conf
, en lugar de lo esperado gitconfig
.
¿Es posible que otras partes de mi configuración de vim (por ejemplo, filetype.vim) estén causando este comportamiento extraño?
Editado en respuesta a los comentarios:
set compatible?
devoluciones nocompatible
set modeline?
devoluciones modeline
verbose set filetype?
devoluciones:
filetype=conf
Last set from /usr/share/vim/vim73/filetype.vim
No entiendo por qué el complemento de tipo de archivo de todo el sistema anularía lo que he configurado en el archivo en sí.
Una nota final: esta es la versión de Vim 7.3 incluida con OSX.
La última versión de MacVim que se ejecuta en el mismo sistema con los mismos .vimrc
comportamientos esperados, con el set ft?
regreso filetype=gitconfig
.
set modeline?
no se imprimenomodeline
?compatible
está configurada. Eso valdría la pena comprobarlo también.Respuestas:
Entonces, después de un poco de excavación, se da cuenta de que el sistema
vimrc
incluido con OSX establece lamodelines
variable (tenga en cuenta la 's' final) en 0. Esta variable controla el número de líneas en un archivo que se comprueban para los comandos de configuración. Establecer modelines en un valor distinto de cero en mi.vimrc
resolvió el problema.Salida completa, para los curiosos: la salida de
vim --version
me incitó a verificar el sistema vimrc:Mirando el sistema vimrc:
Me llevó a la
modelines
variable. Parece que MacVim no obtiene este archivo del sistema (¿quizás:help startup
no está claro si busca un sistema GVIMRC? ).fuente
Para que esto funcione en mi sistema macOS, tuve que definir un par de configuraciones en ~ / .vimrc:
Donde ' modeline ' habilita el uso de la configuración en el archivo, y ' modelines = # ' establece el número de líneas que vim / vi verificará para los comandos set.
Una vez que se establecieron esos parámetros, pude usar la sintaxis como la línea a continuación en mis archivos para anular los parámetros establecidos.
fuente