Vim no puede encontrar la sintaxis.vim

13

Recientemente, necesitaba construir Vim desde la fuente para usar un complemento que requería la interpretación de Lua. Esto funcionó bien en mi computadora portátil, pero mi computadora de torre tiene algunos problemas. Cada vez que ejecuto Vim, recibo el mensaje:

Error detected while processing /home/XXXXXX/.vim/vimrc:
line   55:
E484: Can't open file /usr/share/vim/vim74/syntax/syntax.vim

No es sorprendente que Vim no resalte la sintaxis y arroje otros errores al editar el texto.

Después de investigar un poco yo mismo, puedo decir que syntax.vim está realmente en /usr/local/share/vim/vim74/syntax/syntax.vimlugar del directorio mencionado anteriormente. ¿Como puedo resolver esto?

Más información

Vim se instaló usando checkinstall. Para compilarlo, ejecuté los comandos:

./configure --with-features=huge --enable-cscope --enable-pythoninterp=yes --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu --enable-multibyte --enable-fontset --disable-gui --disable-netbeans --enable-luainterp=yes --with-lua-prefix=/usr/include/lua5.1 --enable-largefile
make VIMRUNTIMEDIR=/usr/share/vim/vim74
Dillmo
fuente
¿Puedes hacer un enlace simbólico a donde vim cree que debería estar? es decirsudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
Sparhawk
Esto parece haber funcionado: sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74. Dejo la pregunta abierta por ahora, en caso de que me encuentre con otros problemas relacionados.
Dillmo
Probablemente quiera hacer una nueva pregunta si tiene un problema por separado. (Si esta solución funciona, no puedo imaginar cómo podría fallar parcialmente en otra parte.) De todos modos, la escribí como respuesta ...
Sparhawk

Respuestas:

5

¿Puedes hacer un enlace simbólico a donde vim cree que debería estar? es decir

sudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim

(Si este directorio de destino no existe, enlace el directorio de nivel superior en su lugar).

Gavilán
fuente
3
Su respuesta definitivamente ayudó: +1 por eso. Sin embargo, como no era del todo correcto, no puedo marcarlo como una solución. El comando sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74funcionó en su lugar. Gracias por tu ayuda de todos modos.
Dillmo
De acuerdo, pero escribí "Si este directorio de destino no existe, entonces vincula el directorio de nivel superior". De todos modos, depende de ti. Siempre puede editar en el comando exacto si lo desea. O crea tu propia respuesta. Depende de usted, de cualquier manera, pero probablemente sea mejor aceptar uno u otro.
Sparhawk
En lugar de simular el resultado, agregarlo --prefix=/usra la llamada de configuración podría haberse instalado en la ubicación correcta de inmediato.
aquaherd
8

El problema es el comando make.

make VIMRUNTIMEDIR=/usr/share/vim/vim74

De la pregunta, en syntax.vimrealidad se encuentra en, /usr/local/share/vim/vim74por lo que debería usar lo siguiente.

make VIMRUNTIMEDIR=/usr/local/share/vim/vim74

En general, la VIMRUNTIMEDIRvariable utilizada por makedebe ser coherente con la prefixvariable utilizada por el configurescript.

Praxeolítico
fuente
1
Esto funciona para mi. No hice la conexión mientras construía vim desde la fuente para YouCompleteMe.
bd1251252
Descubrí que no necesitaba VIMRUNTIME o el make prefix. Si proporcioné uno o ambos, tengo problemas. Solo con el make prefixproblema de OP, con ambos obtuve un error con el color SlateBlue. No creo que lo haya intentado solo con VIMRUNTIME.
trysis
8

En bash run:

export VIMRUNTIME=/usr/share/vim/vim73

Luego, en vim run:

:syntax on

(En mi caso, vim estaba buscando /usr/share/vim/vim74, mientras que no había /usr/local/share/.... Estaba en un AWS EC2 Ubuntu).

Además, tenía que ser VIMRUNTIME, no VIMRUNTIMEDIR.

Tenga en cuenta que para la permanencia puede colocar la exportlínea anterior en el archivo de inicialización personal de su shell, por ejemplo ~/.bash_profile.

isomorfismos
fuente
¡Eso funciona! Es una solución fácil para las personas sin acceso a la raíz.
Osama Gamal