vim no recoge nuevos archivos de sintaxis

1

Copié este archivo de sintaxis GLSL en /usr/share/vim/vim74/syntax/glsl.vim, sus permisos son los -rw-r--r--mismos que en otros archivos de sintaxis.

I gvim /tmp/x.glslpero no activa el resaltado de sintaxis GLSL como esperaba.

Voy Syntax > Show fileypes in menuy se abre la gama completa de idiomas reconocidos. No hay nada debajo de "G" para "GLSL", ni hay nada debajo de "O" para "OpenGL".

¿Qué debo hacer para que vim note la nueva glsl.vimespecificación de resaltado de sintaxis?

rociar
fuente

Respuestas:

0

Las Syntax > Show filetypes in menufuentes de acción $VIMRUNTIME/synmenu.vim. Si abres ese, ves que

  " The following menu items are generated by makemenu.vim.

Entonces, parece ser una cosa estática creada durante el tiempo de construcción de Vim. Desafortunadamente, no recoge sintaxis agregadas o específicas del usuario.

El administrador /usr/share/vim/de paquetes de su distribución administra el directorio. Si coloca archivos allí, pueden perderse cuando reinstale o actualice Vim. No hagas eso. La solución directa es ponerlo ~/.vim/syntax/; entonces solo se aplica a ti. [1]

Vim distingue entre resaltado de sintaxis y tipos de archivo . Para que se aplique la sintaxis agregada, debe detectar los archivos GLSL. :help new-filetypete dice cómo hacerlo

Una forma (modular) de hacer esto es creando ~/.vim/ftdetect/glsl.vimcon los siguientes contenidos:

au BufRead,BufNewFile *.glsl        set filetype=glsl

Necesitas :filetype ony también :syntax onen tu ~/.vimrc, pero esas son configuraciones muy comunes, por lo que probablemente ya las tengas.


[1] Si realmente tiene un sistema multiusuario y necesita que esté disponible en todo el sistema, póngalo en otro lugar 'runtimepath'. Dependiendo de su distribución, puede que ya haya una ruta preconfigurada (por ejemplo, en /etc/vim/vimrcDebian), o la oportunidad de obtener una configuración específica del sistema (por ejemplo /etc/vim/vimrc.local), y puede aumentarla 'runtimepath'allí.

Ingo Karkat
fuente