E185: 无法找到solarized配色方案

49

我通过pathogen安装了Solarized主题,它在我的Mac上的终端和MacVim中都可以正常工作。今天,我尝试在Linode上设置一个Ubuntu盒子。我刚刚克隆了我的dotfiles并建立了符号链接到我的.vim.vimrc文件夹(这与我在本地机器上使用的设置相同)。

每当我尝试在Ubuntu盒子上运行vim时,就会出现错误。

Error detected while processing /root/.vimrc:
line   43:
E185: Cannot find color scheme solarized
Press ENTER or type command to continue

通过其他设置(比如行号)能够看出我的.vimrc已经被加载了。

.vimrc中相关的代码行如下:

" settings needed for solarized colorscheme
syntax enable
set background=dark
let g:solarized_termcolors=256
colorscheme solarized

这是我的.vim/bundle目录的设置(以防你怀疑我实际上没有将solzrized放在那里!):

~  ls .vim/bundle 
ack                  coffeescript         liquid               snipmate             vim-colors-solarized vim-jst              zencoding
closetag             html5.vim            nerdtree             surround             vim-javascript       vim-rails

还有一件事,在Ubuntu系统上,在vim中运行echo &t_Co会得到256

有什么想法吗?

10个回答

48

我也遇到了这个问题。我在我的 .vimrc 文件中有 call pathogen#infect() 这行代码,但是仍然遇到了以下错误:

E185: 找不到颜色方案 solarized

像你一样,我遇到了这个错误。我把 call pathogen#infect() 这行代码移到了我的 .vimrc 文件的顶部,现在一切都正常了。如果你还遇到问题,可以试试这个方法!


在我的情况下,当我将“call pathogen#infect()”粘贴到我的.vimrc中时已被注释掉了。我取消了注释,现在一切正常。 - oalders
1
对于那些使用Janus + Pathogen的人,在“call janus#load_pathogen”之后插入设置。 - lfender6445
2
对于Vundle,也是一样的:在“Plugin[...]”行之后和设置(即“colorscheme solarized”)之前立即插入“call vundle#end()”行。 - Andrei Simionescu

17

我知道这可能很明显,但你检查了~/.vim/bundle/vim-colors-solarized的内容吗?以防你遇到Vim: Pathogen not loading描述的同样问题。


2
我很尴尬地说这是正确的答案。我没有使用子模块来管理我的捆绑包,这意味着当我克隆我的点文件时,vim捆绑包没有被克隆。捆绑目录存在但为空。 - David Tuite

8
:colo[rscheme] {name}   Load color scheme {name}.  This searches 'runtimepath'
            for the file "colors/{name}.vim.  The first one that
            is found is loaded.

你应该将solarized.vim放在~/.vim/colors/目录下。

但是这样我就不能使用pathogen来管理它了,对吧?根据Solarized网站的说法,不仅应该在bundle目录中与solarized一起工作,而且这也是推荐的方法。 - David Tuite
也许 pathogen 没有正确加载。您应该检查 :set rtp? - kev
对我来说看起来没问题。runtimepath=~/.vim,~/.vim/bundle/ack,~/.vim/bundle/closetag,~/.vim/bundle/coffeescript,~/.vim/bundle/html5.vim,~/.vim/bundle/liquid,~/.vim/bundle/nerdtree,~/.vim/bundle/snipmate,~/.vim/bundle/surround,~/.vim/bundle/vim-colors-solarized,~/.vim/bundle/vim-javascript,~/.vim/bundle/vim-jst,~/.vim/bundle/vim-rails,~/.vim/bundle/zencoding,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim73,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after - David Tuite

7

这是我所做的事情:

cp ~/.vim/bundle/vim-colors-solarized/colors/solarized.vim ~/.vim/colors/

3
我最近在新的CentOS系统上遇到了这个问题, 'vi' 被映射到一个没有语法支持(即 -syntax) 的VIM版本,并出现了 E185: Cannot find color scheme solarized 错误,而 'vim' 映射到一个有语法支持的版本并且可以正常使用solarized主题。
将 'vi' 别名为 'vim' 解决了这个问题。
参考: 要检查您正在运行的vim版本是否支持语法突出显示,请在vim中运行 :version-syntax 表示无支持,+syntax 表示有支持。 要创建别名,请将 alias vi='vim' 添加到您的 ~/.bashrc 或 ~/.bash_profile 中。 要重新加载,请键入适用于您设置的 source ~/.bashrcsource ~/.bash_profile

2

1
我遇到了这个问题,通过执行以下命令解决:
cd ~/.yadr
git pull
rake update

1

这需要手动更新,而在同一个问题中已经有实际的解决方案,而且是在你回答之前2年发布的,所以这样做实在是过度了。 - Zoe stands with Ukraine

0

正如Ryan Ransford所说:

使用新版本的Vundle.vim(Vundle),

似乎必须在"call vundle#end()"之后添加"colorscheme solarized"。

这对我很有效!


0

我遇到了同样的问题,并且在~/.vimrc文件中将颜色设置移动到call vundle#end()语句之后后解决了它。

...
Plugin 'jnurmine/Zenburn'
Plugin 'altercation/vim-colors-solarized'

call vundle#end()            " required
filetype plugin indent on    " required

if has('gui_running')
  set background=dark
  colorscheme solarized
else
  colorscheme zenburn
endif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接