Vim cannot find syntax.vim

Recently, I needed to build Vim from source to use a plugin that required Lua interpreting. This worked fine on my laptop, but my tower computer is having some issues. Any time I run Vim, I recieve the message:

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

Not surprisingly, Vim then fails to highlight syntax, and throws a bunch of other errors when editing text.

Having done some research myself, I can tell that syntax.vim is actually in /usr/local/share/vim/vim74/syntax/syntax.vim, as opposed to the previously mentioned directory. How can I solve this?

More Info

Vim was installed using checkinstall. To compile it, I ran the commands:

./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

In bash run:

export VIMRUNTIME=/usr/share/vim/vim73

Then in vim run:

:syntax on

(In my case vim was looking in /usr/share/vim/vim74, whereas there was no /usr/local/share/.... I was on an AWS EC2 Ubuntu.)

Also, it needed to be VIMRUNTIME, not VIMRUNTIMEDIR.

Note that for permanence you can place the above export line into your shell's personal initialization file, e.g. ~/.bash_profile.


The problem is the make command.

make VIMRUNTIMEDIR=/usr/share/vim/vim74

From the question, syntax.vim is actually located in /usr/local/share/vim/vim74 so you should instead be using the following.

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

In general, the VIMRUNTIMEDIR variable used by make should be consistent with the prefix variable used by the configure script.


Can you just make a symlink to where vim thinks it should be? i.e.

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

(If this target directory doesn't exist, then link the higher-level directory instead.)