当我尝试打开我的.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
以及诸如colors
、doc
等目录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