使用vimrc时无法打开syntax.vim错误

使用vimrc时无法打开syntax.vim错误

当我尝试打开我的.bashrc文件时。然后它显示这些行:

Errordetected while processing /etc/vimrc:
line 45:
E848: Can't open file /usr/share/vim/vim70/syntax/syntax.vim
Press ENTER or type command to continue

当我转到该/etc/vimrc文件时,它显示syntax on第 45 行。我已经安装了操作系统 3 次,但它总是显示相同的错误。

答案1

您的服务器正在尝试使用文件进行词法突出显示。 vim 正在查找的位置不存在该文件。

此时,您可以执行以下任一操作:

  • 删除 /etc/vimrc 中对语法的引用
  • 在服务器上查找语法文件(例如find / -name syntax.vim)并将该文件复制或符号链接到 vim 正在查找的目录
  • 下载语法文件,例如从vim.org
  • 创建一个语法文件 - 有文档vimdoc.sourceforge.net

答案2

Vim 期望在特定位置找到其安装文件(例如帮助系统、语法突出显示的定义),但无需其中许多文件也可以运行。虽然您可以运行 Vim,但它可能无法找到这些安装文件。

Vim 将尝试多种方法来查找这些文件,但如果您的安装不正常,则将找不到它们。

如果您可以访问帮助系统,请阅读以下主题::help $VIM:help $VIMRUNTIME。您可能在当前配置下找不到它们,因此请阅读网络上的版本,例如:帮助$VIM:help $VIMRUNTIME

我怀疑您可以通过正确设置 VIM 和 VIMRUNTIME 环境变量之一或两者来解决您的问题。

您可能会发现vim二进制文件和运行时文件存在于不同的目录树中,并且您需要在某个路径下寻找运行时文件,例如:find /path -type d -name 'vim[0-9]*'

一个例子

我依赖与 Sun Studio 开发包捆绑在一起的 Vim 实例,我们的系统管理员通过远程安装提供了该包。二进制vim文件位于/remote/sunstudio12/SUNWspro/contrib/vim/bin/vim(例如which vim),运行时文件位于/remote/sunstudio12/SUNWspro/contrib/vim/share/vim/vim63

我有和你类似的问题。首先,我尝试导出VIM=/remote/sunstudio12/SUNWspro/contrib/vim,但没有成功。另外,我尝试了导出VIMRUNTIME=/remote/sunstudio12/SUNWspro/contrib/vim/share/vim/vim63,它工作正常(而 VIM 保持未设置状态)。VIMRUNTIME应指向包含诸如menu.vim、 等文件的目录scripts.vim以及诸如colorsdoc等目录syntax(可能与版本相关,YMMV)。

我还修改了我的位置PATH来找到vim二进制文件,但是,您已经可以成功运行该二进制文件了。

(更新...)

我重新审视了上述的 shell 环境设置,发现导出VIM=/remote/sunstudio12/SUNWspro/contrib/vim/share/vim(和取消设置VIMRUNTIME)也有效——我最初的设置实验VIM被误导了。指向的位置VIM包含一个目录,vim63其中包含我需要的运行时文件。

我仍然依赖于PATH定位vim二进制文​​件。

答案3

丢失的文件不是语法定义,而是:syntax on命令的 Vimscript 实现。没有它,Vim 中就不会有语法高亮。

该文件随 Vim 一起提供;您的安装肯定已损坏。尝试重新安装。另外,Vim 7.0 是 2006 年的版本,非常过时的。应该可以安装最新版本7.3;如果您找不到适合您的发行版的软件包,那么也不是很难编译(例如来自 Mercurial 来源)在 Linux 上。

答案4

我在 Mac 上重新安装了自制的 vim 后遇到了这个问题。我通过将share/vim安装中的文件夹符号链接来修复它,/usr/local/share/vim如下所示:

latest_vim="$(ls -rtd /usr/local/Cellar/vim/* | tail -n1)"
ln -sf "$latest_vim/share/vim" /usr/local/share/vim

相关内容