我最近在我的 Ubuntu 14.04 机器上安装了 VIM 8.0。当我打开 vim 时,它输出一个错误:
> vim ~/.vimrc
Error detected while processing /usr/local/share/vim/vim80/syntax/syncolor.vim:
line 36:
E254: Cannot allocate color Orange1
E254: Cannot allocate color Orange1
Press ENTER or type command to continue
当我按下回车键时,它打开时没有语法高亮显示(但是使用配色方案,如果我将 :colorscheme 更改为其他内容,颜色会略有变化)。
但如果我以 root 身份运行,它会以语法高亮显示。
sudo vim ~/.vimrc
我认为这是一个权限问题,因此我将 syncolor.vim 设置为所有人都可读:
> ll /usr/local/share/vim/vim80/syntax/syncolor.vim
-rwxrwxrwx 1 root root 4.0K Dec 22 23:29 /usr/local/share/vim/vim80/syntax/syncolor.vim
还是没运气。然后我想知道 root 下的 vim 是否与我的用户下的 vim 设置不同:
> which vim
/usr/local/bin/vim
> /usr/local/bin/vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Dec 22 2016 23:01:25)
> sudo which vim
/usr/local/bin/vim
> sudo /usr/local/bin/vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Dec 22 2016 23:01:25)
我的下一个想法是 root 的 TERM 不同:
> echo $TERM
xterm-256color
> sudo echo $TERM
xterm-256color
root 和我自己的用户都使用相同的 .vimrc 文件:
echo $MYVIMRC
/home/aaron/.vimrc
我不知所措。我的用户和 root 之间还有什么不同会导致颜色无法加载?
答案1
问题很可能出在您的“$VIMRUNTIME”文件夹中的“defaults.vim”,在这种情况下可能意味着../usr/local/share/vim/vim80/defaults.vim
我刚刚尝试在 OpenVMS 上使用 vim 8.1 修复同样的问题,结果发现这是导致 vim 加载时vim -u [some garbage filename]
强制 vim 在没有系统 .vimrc 的情况下加载,而且也没有系统 defaults.vim