使用Solarized在iTerm2中使用vim的颜色不正确

问题描述 投票:80回答:10

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

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

set background=dark
colorscheme solarized

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

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

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

macos vim color-scheme iterm
10个回答
115
投票

要检查的几件事:

  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。

但是,如果您在Snow Leopard上使用默认的内置vim,它将无法工作,因为它不支持256色。我相信Lion的内置版本确实如此。

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

第二次编辑:如果你已经将曝光的调色板加载到iTerm2中,那么你必须let g:solarized_termcolors=16。如果你没有使用曝光的调色板作为你的iTerm2颜色预设,只有let g:solarized_termcolors=256


0
投票

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

获得的经验:不要两者都做。


87
投票

以上答案对我不起作用。

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

如果上述解决方案也不适合您,请尝试此操作

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

更新:吉姆斯图尔特认为,这也适用于Kitty


12
投票

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

10
投票

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

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

colorscheme solarized
set background=dark

6
投票

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

终端用户的重要说明:

如果您要在终端模式下使用Solarized(即不是像gvim或macvim这样的GUI版本),请考虑将终端仿真器的colorscheme设置为使用Solarized调色板。我已经在Solarized主页上提供了官方Solarized下载的一些流行的终端模拟器以及Xdefaults的调色板。如果你在没有这些颜色的情况下使用Solarized,则需要告知Solarized将其colorscheme降级为与有限256终端调色板兼容的设置(而使用终端的16 ansi颜色值,您可以为Solarized设置正确的特定值调色板)。

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

let g:solarized_termcolors=256

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


6
投票

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

这是我对它的修复。

  1. 的.vimrc 语法启用set background = dark colorscheme solarized
  2. 将报告终端类型设置为xterm-256color

enter image description here

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

enter image description here


4
投票

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

  1. iterm2-colors-solarized github page
  2. 按照“安装”下的说明进行操作
  3. 确保你的.vimrc有colorscheme solarized

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


1
投票

解决此问题的一种简单方法是:

在颜色dir上vim-color-solarized存在一个名为'solarized.vim'的存档

打开此文件并搜索: exe“let s:bg_back ='”。s:vmode。“bg =”。s:back。“'”

替换为: exe“let s:bg_back ='”。s:vmode。“bg =”。s:none。“'”


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.