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

时间:2011-09-02 01:00:19

标签: macos vim color-scheme iterm

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

我也使用solarized用于vim。我的.vimrc

中有以下几行
set background=dark
colorscheme solarized

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

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

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

11 个答案:

答案 0 :(得分: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。

  3. 但是,如果您在Snow Leopard上使用默认的内置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颜色预设。

答案 1 :(得分:87)

以上答案对我不起作用。

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

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

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

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

答案 2 :(得分: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

答案 3 :(得分: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

答案 4 :(得分: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值。

答案 5 :(得分:6)

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

这是我对它的修复。

  1. 的.vimrc

    语法启用 设置背景=黑暗 colorscheme solarized

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

  3. enter image description here

    1. 将配置文件中的颜色预设设置为Solarized Dark
    2. enter image description here

答案 6 :(得分:4)

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

  1. 转到iterm2-colors-solarized github page
  2. 按照“安装”
  3. 下的说明进行操作
  4. 确保您的.vimrc有colorscheme solarized
  5. 这应该将iTerm2中的vim颜色设置为与gui编辑器中的颜色完全相同。

答案 7 :(得分:1)

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

颜色dir on vim-color-solarized存在一个名为' solarozed.vim'

的arquive

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

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

答案 8 :(得分:0)

我尝试了以前的所有建议。我刚刚将exp userid=me/mypass@dbname tables=me.TABLE_A,me.TABLE_B query=\"WHERE ROWID IN (SELECT T.ROW_ID FROM EXP_ROW_ID T)\" 添加到.vimrc并修复了它。我不需要创建set t_Co=256别名或更改我的配置文件。

答案 9 :(得分:0)

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

获得的经验:不要两者兼顾。

答案 10 :(得分:0)

以前的答案都没有对我有用。显然我不见了:

set termguicolors