最近,我需要从源代码构建 Vim 以使用需要 Lua 解释的插件。这在我的笔记本电脑上运行良好,但我的塔式电脑出现了一些问题。每次运行 Vim 时,我都会收到以下消息:
Error detected while processing /home/XXXXXX/.vim/vimrc:
line 55:
E484: Can't open file /usr/share/vim/vim74/syntax/syntax.vim
毫不奇怪的是,Vim 无法突出显示语法,并且在编辑文本时抛出一堆其他错误。
我自己做了一些研究后发现,syntax.vim 实际上位于 中/usr/local/share/vim/vim74/syntax/syntax.vim
,而不是前面提到的目录中。我该如何解决这个问题?
更多信息
Vim 是使用 来安装的checkinstall
。为了编译它,我运行了以下命令:
./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
答案1
在 bash 中运行:
export VIMRUNTIME=/usr/share/vim/vim73
然后在 vim 中运行:
:syntax on
(在我的情况下,vim 正在寻找/usr/share/vim/vim74
,而没有/usr/local/share/...
。我在 AWS EC2 Ubuntu 上。)
此外,它必须是VIMRUNTIME
,而不是VIMRUNTIMEDIR
。
请注意,为了永久保留,您可以将上面一行放入export
shell 的个人初始化文件中,例如~/.bash_profile
。
答案2
问题在于 make 命令。
make VIMRUNTIMEDIR=/usr/share/vim/vim74
从问题来看,syntax.vim
实际上位于,/usr/local/share/vim/vim74
因此您应该使用以下内容。
make VIMRUNTIMEDIR=/usr/local/share/vim/vim74
一般来说,VIMRUNTIMEDIR
使用的变量make
应该与脚本prefix
使用的变量一致configure
。
答案3
你能建立一个符号链接到 vim 认为它应该在的位置吗?即
sudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
(如果该目标目录不存在,则链接上级目录。)