13

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
3
  • 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
    – Sparhawk
    Apr 9, 2014 at 22:38
  • This seems to have worked: sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74. I'm leaving the question open for now, in case I run into other related issues.
    – Dillmo
    Apr 9, 2014 at 22:42
  • You probably would want to ask a new question if you have a separate issue. (If this solution works at all, I can't imagine how it could partially fail elsewhere.) Anyway, I wrote it up as an answer…
    – Sparhawk
    Apr 9, 2014 at 22:45

3 Answers 3

10

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.

2
  • 1
    That works! It is an easy fix for people with no root access. Dec 3, 2019 at 20:39
  • Yes. I was unpacking rpm files manually on a server without root access so this is the only option. Sep 8, 2021 at 22:57
9

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.

2
  • 1
    This works for me. I didn't make the connection while building vim from source for YouCompleteMe.
    – bjd2385
    Jun 11, 2018 at 12:46
  • I found I didn't need VIMRUNTIME or the make prefix. If I provided either, or both, I got problems. With only the make prefix I got the OP's problem, with both I got an error with the SlateBlue color. I don't believe I tried with just VIMRUNTIME.
    – trysis
    Dec 29, 2018 at 23:59
6

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

3
  • 3
    Your answer definitely helped: +1 for that. However, since it was not quite correct, I can't mark it as a solution. The command sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74 worked instead. Thanks for your help anyways.
    – Dillmo
    Apr 9, 2014 at 22:47
  • Okay, but I did write "If this target directory doesn't exist, then link the higher-level directory instead." Anyway, up to you. You can always edit in the exact command if you like. Or create your own answer. Up to you, either way, but probably best to accept one or the other.
    – Sparhawk
    Apr 9, 2014 at 23:01
  • Instead of symlinking the result, adding --prefix=/usr to the configure call might have installed to the correct location right away.
    – aquaherd
    Nov 29, 2014 at 10:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .