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