Vim找不到语法.vim


13

最近,我需要从源代码构建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然后没有突出显示语法,并且在编辑文本时引发了许多其他错误。

我自己做了一些研究后,可以看出语法.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

您能否在vim认为应该的位置建立符号链接?即sudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
Sparhawk

这似乎已经奏效:sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74。我暂时不提问题,以防遇到其他相关问题。
Dillmo'4

如果您有其他问题,您可能想问一个新问题。(如果该解决方案完全可行,我将无法想象它在其他地方可能会部分失败。)无论如何,我把它写成了答案……
Sparhawk 2014年

Answers:


5

您能否在vim认为应该的位置建立符号链接?即

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

(如果此目标目录不存在,请链接更高级别的目录。)


3
您的回答肯定有帮助:为此+1。但是,由于它不太正确,因此无法将其标记为解决方案。该命令sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74代替了。无论如何,谢谢您的帮助。
Dillmo'4

好的,但是我确实写过“如果此目标目录不存在,请改为链接更高级别的目录。” 无论如何,取决于您。如果愿意,您始终可以在确切的命令中进行编辑。或创建自己的答案。取决于您,无论哪种方式,但最好是接受一个。
Sparhawk 2014年

与其将结果符号链接起来,不如将其添加--prefix=/usr到configure调用中可能已立即安装到正确的位置。
2014年

8

问题是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


1
这对我有用。从YouCompleteMe的源代码构建vim时,我没有建立连接。
bd1251252

我发现我不需要VIMRUNTIME或make prefix。如果我提供一个或两个,则遇到问题。只有make prefix我遇到了OP的问题,而我都遇到了SlateBlue颜色的错误。我不相信我只尝试了VIMRUNTIME。
trysis

8

在bash中运行:

export VIMRUNTIME=/usr/share/vim/vim73

然后在vim中运行:

:syntax on

(就我而言,vim正在查看 /usr/share/vim/vim74,而没有/usr/local/share/...。我正在使用AWS EC2 Ubuntu。)

另外,它需要 VIMRUNTIME,而不是VIMRUNTIMEDIR

请注意,为永久起见,您可以将上述export行放入外壳的个人初始化文件中,例如~/.bash_profile


这样可行!对于没有root用户访问权限的人来说,这是一个简单的解决方案。
奥沙玛·加玛尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.