85

我在终端 vim(非 gui)和日晒配色方案中遇到了 iTerm2 的一个奇怪问题。首先,我将 iTerm2 设置为使用深色日晒配色方案。

我也在为vim使用solarized。我的 .vimrc 中有以下几行

set background=dark
colorscheme solarized

在终端中,配色方案看起来不正确: 控制台 vim

作为参考,这是它在 MacVim (gui vim) 下的外观 桂vim

我需要在 iTerm 或我的 .vimrc 中进行哪些更改才能在我的控制台 vim 中正确显示颜色?

4

11 回答 11

119

有几件事要检查:

  1. 在 iTerm2 中,在首选项 -> 配置文件 -> 终端中,在“终端仿真”下,您将“报告终端类型:”设置为 xterm-256color。

  2. 在您的 .vimrc 中,您还可以设置一些选项以确保它使用 256 色:

    set background=dark
    " solarized options 
    let g:solarized_visibility = "high"
    let g:solarized_contrast = "high"
    colorscheme solarized
    
    其中一个应该可以工作,但首先是#1。

但是,如果您使用的是默认的,内置于​​雪豹上的 vim,它将无法工作,因为它不支持 256 色。我相信 Lion 中的内置版本可以。

编辑:根据对此答案的几条评论,我从上面的示例中删除let g:solarized_termcolors = 256了行。.vimrc对某些人来说,这似乎是个问题。另一个人说,添加这条线let g:solarized_termcolors = 16解决了一个彩色显示问题。您自己的里程可能会有所不同。

第二次编辑:如果您已将日晒调色板加载到 iTerm2 中,那么您必须let g:solarized_termcolors=16. 仅let g:solarized_termcolors=256当您使用日晒调色板作为 iTerm2 颜色预设时。

于 2011-09-02T01:59:42.857 回答
94

上面的答案对我不起作用。

我在 OS X 10.7.4 上使用 iTerm2 和 vim 7.3。

如果上述解决方案也不适用于您,请尝试此

syntax on
set background=dark
let g:solarized_termtrans = 1
colorscheme solarized

更新:根据 Jim Stewart 的说法,这也适用于Kitty

于 2012-10-19T07:23:35.177 回答
13

https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

下载 Solarized 包 ( https://github.com/altercation/solarized ) 并按照说明进行操作:

打开iTerm 2,打开首选项,点击首选项工具栏中的“配置文件”(以前的地址,以前的书签)图标,然后选择“颜色”选项卡。单击“加载预设”并选择“导入...”。选择 Solarized Light 或 Dark 主题文件。

您现在已将 Solarized 颜色预设加载到 iTerm 2 中,但尚未应用它们。要应用它们,只需从左侧的配置文件列表窗口中选择现有配置文件,或创建一个新配置文件。然后从“加载预设”下拉菜单中选择 Solarized Dark 或 Solarized Light 预设。

=====================================

或者:

cd ~/.vim/bundle
git clone git://github.com/altercation/vim-colors-solarized.git

修改.vimrc

黑暗主题:

syntax enable
set background=dark
colorscheme solarized

syntax enable
set background=light
colorscheme solarized
于 2014-03-05T23:51:07.053 回答
10

这在 iTerm 2 和终端的 OS X 10.9.1 中对我有用。我犯的一个错误是将颜色方案声明放在 termtrans 和 termcolors 设置之前(我需要这两者才能使其工作)。正如其他人所说,我将终端类型设置为 xterm-256color

if !has("gui_running")
    let g:solarized_termtrans=1
    let g:solarized_termcolors=256
endif

colorscheme solarized
set background=dark
于 2014-02-12T01:59:07.417 回答
7

我在 OSX 10.11.6、iTerm2 Build 3.0.12 上遇到了同样的问题。

这是我的解决方法。

  1. .vimrc

    语法启用 set background=dark colourscheme 日晒

  2. 将报表终端类型设置为xterm-256color

在此处输入图像描述

  1. 将配置文件中的颜色预设设置为 Solarized Dark

在此处输入图像描述

于 2016-11-21T19:25:33.950 回答
6

来自创作者:http ://ethanschoonover.com/solarized/vim-colors-solarized

终端用户重要提示:

如果您打算在终端模式下使用 Solarized(即不在 gvim 或 macvim 等 GUI 版本中),请考虑将终端仿真器的颜色方案设置为使用 Solarized 调色板。我在 Solarized 主页提供的官方 Solarized 下载中包含了一些流行的终端仿真器和 Xdefaults 的调色板。如果您在没有这些颜色的情况下使用 Solarized,则需要告知 Solarized 将其颜色方案降级为与有限的 256 终端调色板兼容的集合(而通过使用终端的 16 ansi 颜色值,您可以为 Solarized 设置正确的特定值调色板)。

如果您确实使用自定义终端颜色,solarized.vim 应该为您开箱即用。如果您使用的是支持 256 色的终端模拟器并且不想使用自定义的 Solarized 终端颜色,则需要使用降级的 256 色方案。为此,只需在 colorschem solarized 行之前添加以下行:

let g:solarized_termcolors=256

同样,我建议您手动或通过可用于导入的众多终端方案之一将终端颜色更改为 Solarized 值。

于 2013-12-09T00:30:08.677 回答
4

比尔特纳的回答有效,但有一种方法可以让颜色与 MacVim 完全匹配。Solarized 专门支持 iTerm2 以及其他终端仿真器。

  1. 转到iterm2-colors-solarized github 页面
  2. 按照“安装”下的说明进行操作
  3. 确保你的 .vimrc 有这条线colorscheme solarized

这应该将 iTerm2 中的 vim 颜色设置为与 gui 编辑器中的颜色完全相同。

于 2012-09-20T20:02:37.353 回答
1

解决这个问题的一个简单方法是:

在 vim-color-solarized 的颜色目录中存在一个名为 'solarozed.vim' 的 arquive

打开此文件并搜索:
exe "let s:bg_back = '".s:vmode."bg=".s:back ."'"

替换为:
exe "let s:bg_back = ' ".s:vmode."bg=".s:none ."'"

于 2015-03-21T12:40:27.977 回答
1

对于任何像我一样仍然存在的问题,我已经安装了 iterm2 solarized color profile将vim-color-solarized安装到 vim 包并按照说明进行操作是不必要的并且不兼容。上面的屏幕截图中有一些有趣的突出问题。

经验教训:不要两者都做。

于 2018-03-03T22:59:48.137 回答
0

我尝试了所有以前的建议。我刚刚添加set t_Co=256到 .vimrc 并已修复。我不需要创建tmux别名或更改我的配置文件。

于 2017-08-05T22:10:23.433 回答
0

以前的答案都不适合我。显然我错过了:

set termguicolors
于 2020-09-25T19:10:40.413 回答