Vim + Terminator + Ubuntu 11.10 上如何使用 Solarized 主题?

5

我正在尝试在Terminator上为vim设置solarized主题,但似乎不起作用。:-(

我已经成功地为terminator设置了solarized,但是对于vim似乎并没有生效。这是我的.vimrc文件内容:

call pathogen#infect()
filetype plugin indent on
syntax enable
set background=dark
"set t_Co=16
"let g:solarized_termcolors=16
let g:solarized_visibility = "high"
let g:solarized_contrast = "high"
colorscheme solarized

$TERM is set to xterm

我也尝试了取消注释上面的两行,但仍然无法工作。

请问有人能告诉我我做错了什么吗?

谢谢!

编辑:solarized vim


1
“它不工作”是什么意思?你有错误信息、故障或颜色错误吗? - romainl
有多错?你在谈论一个颜色方案:可能提供一两张截图会有所帮助。 - romainl
3
这应该在http://superuser.com上询问。 - Brian Roach
请尝试访问 https://github.com/sigurdga/gnome-terminal-colors-solarized。 - Manav
为了我的参考,你介意在终端器上执行“ls -las”命令并截图吗? - eugenevd
显示剩余2条评论
3个回答

13

正如Ethan Schoonover在他的vim配色方案自述文件中指出的那样,要使配色方案生效,首先必须配置终端颜色调色板。

在terminator中,有一个GitHub仓库,保存了深色和浅色配色的颜色配置。

问题是,这个调色板也不正确,正确的调色板是一个人在同一仓库的问题评论中发布的。

以下是正确的配置(至少适用于暗色方案):

[[solarized-dark]]
  palette = "#073642:#dc322f:#859900:#b58900:#268bd2:#d33682:#2aa198:#eee8d5:#002b36:#cb4b16:#586e75:#657b83:#839496:#6c71c4:#93a1a1:#fdf6e3"
  cursor_color = "#eee8d5"
  foreground_color = "#eee8d5"
  background_color = "#002b36"

接下来,您需要配置solarized配色方案:

syntax on
set t_Co=16
set background=dark
colorscheme solarized

需要注意一些事情:

  1. 通常来说,set t_Co=16 这行不是必须的,因为大多数终端模拟器只支持16种颜色(例如terminator)。但是我更喜欢显式声明而不是隐式的(特别是如果你要在多台电脑之间同步文件)。

  2. set g:solarized_termcolors=16 这行是默认值,所以你可以加上或者不加:不会有任何区别。

  3. 在我的经验中,256种颜色版本更好(我更喜欢灰色背景而不是蓝色的;但这是个人口味 :P)。与大家可能想的相反,256种颜色方案实际上是后备方案,16种颜色是默认方案。奇怪的是,大多数人都认为256 > 16。无论如何,要使用“后备”方案,您必须将以下行更改为:

    set t_Co=256
    set g:solarized_termcolors=256
    
  4. 实际上,其他CLI应用程序中存在一些与颜色输出有关的问题。我建议您去阅读Seebi的文章关于dircolors的理解和在solarized github问题跟踪器上的一个正在进行的(?)讨论


1
任何图形 Vim(MacVim、gVim)都使用 1600 万种颜色,因此颜色方案只需选择需要的精确 16 种颜色即可。终端 Vim 需要使用先前选择的 16 种颜色(来自您的终端模拟器颜色方案),或者从 256 种颜色空间中近似颜色。这就是 Ethan 将其称为 降级 颜色方案的原因。 - Capi Etheriel

8
我确定您不需要vim的颜色主题导入,因为您已经为终端设置了颜色方案。至少,在许多尝试后,这是我能够让它正常工作的唯一方法。
以下是我的vimrc截图(在终端中): enter image description here 如您所见,我没有这一行。
colorscheme solarized

所以你可以尝试把那个东西拿掉 - 对我来说最终似乎是有效的!

顺便说一句,你的屏幕截图看起来不像是在终端内拍摄的 - 当然,除非我们谈论的是不同的终端。


抱歉回复晚了,eggonlegs。你太棒了!它完美地运行了。非常感谢! :-) - test123
太好了!很高兴它起作用了:D 还请注意一下这行代码:'call togglebg#map("<F5>"), 它可以让你将配色方案翻转为反转的solarized。 - eggonlegs
这个是有效的。我在多台机器上工作,并在它们之间同步vimrc。如果我删除__colorscheme__行,在另一台机器上就不起作用了。有没有什么通用的方法可以在终端中解决这个问题? - Han He
韩赫:说实话,需要更多信息,但听起来你需要在另一台机器上设置终止符颜色方案。 - eggonlegs
我写了一个相当长的答案(请参见下文),但它应该涵盖每个“用例”:)。据我所知,在我的看法中,这应该是正确的方法,因为如果您不选择颜色方案,则无法获得其好处。问题和颜色问题是因为终端调色板与vim插件附带的调色板不同。 - Pablo Olmos de Aguilera C.
1
这对我也起作用。还有一件事要指出 - 我的CSApprox插件掩盖了正在发生的事情,并且对于Solarized是不必要的。 - khamer

1
尝试将以下内容添加到您的 .vimrc 文件中。
let g:solarized_termcolors=16

截图中的其余设置都没问题。


谢谢你的回复,Bosvark。我尝试了那个设置,但是所有的东西看起来都是灰色的。 - test123

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