Dil*_*lmo 13 vim command-line compiling
最近,我需要从源代码构建 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
Run Code Online (Sandbox Code Playgroud)
不足为奇的是,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
Run Code Online (Sandbox Code Playgroud)
小智 9
问题是 make 命令。
make VIMRUNTIMEDIR=/usr/share/vim/vim74
Run Code Online (Sandbox Code Playgroud)
从问题来看,syntax.vim
实际上位于,/usr/local/share/vim/vim74
因此您应该使用以下内容。
make VIMRUNTIMEDIR=/usr/local/share/vim/vim74
Run Code Online (Sandbox Code Playgroud)
一般来说,VIMRUNTIMEDIR
bymake
使用的prefix
变量应该与configure
脚本使用的变量一致。
在 bash 中运行:
export VIMRUNTIME=/usr/share/vim/vim73
Run Code Online (Sandbox Code Playgroud)
然后在 vim 中运行:
:syntax on
Run Code Online (Sandbox Code Playgroud)
(在我的情况下,vim 正在查看/usr/share/vim/vim74
,而没有/usr/local/share/...
。我在 AWS EC2 Ubuntu 上。)
此外,它必须是VIMRUNTIME
,而不是VIMRUNTIMEDIR
。
请注意,为了永久起见,您可以将上述export
行放入您的 shell 的个人初始化文件中,例如~/.bash_profile
.
你能做一个符号链接到 vim 认为它应该在哪里吗?IE
sudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
Run Code Online (Sandbox Code Playgroud)
(如果此目标目录不存在,则改为链接更高级别的目录。)