我在使用iTerm2时遇到奇怪的问题,它发生在非GUI下的终端vim以及solarized配色方案中。首先,我已经设置了iTerm2使用深色的solarized配色方案。
我还在vim中使用solarized。我在我的.vimrc文件中添加了以下内容:
set background=dark
colorscheme solarized
在终端中,颜色方案看起来不正确:
![console vim](https://istack.dev59.com/Tc9bq.webp)
![gui vim](https://istack.dev59.com/Tao1x.webp)
我在使用iTerm2时遇到奇怪的问题,它发生在非GUI下的终端vim以及solarized配色方案中。首先,我已经设置了iTerm2使用深色的solarized配色方案。
我还在vim中使用solarized。我在我的.vimrc文件中添加了以下内容:
set background=dark
colorscheme solarized
在终端中,颜色方案看起来不正确:
需要检查以下几点:
在iTerm2中,选择“首选项” -> “配置文件” -> “终端”,在“终端仿真”下,“报告终端类型”设置为xterm-256color。
在您的.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中的内置版本有。
编辑:根据对此答案的多个评论,我已从上面的.vimrc示例中删除了 let g:solarized_termcolors = 256
行。这似乎可能会有问题。另一个说,添加 let g:solarized_termcolors = 16
行可以解决颜色显示问题。 您自己的情况可能会有所不同。
第二次编辑: 如果您已将solarized调色板加载到iTerm2中,则必须使 let g:solarized_termcolors=16
。 仅在您未将solarized调色板设置为iTerm2的颜色预设时使用 let g:solarized_termcolors=256
。
以上答案对我没有用。
我正在使用OS X 10.7.4上的iTerm2和vim 7.3。
如果以上解决方案对您也无效,请尝试这个方法。
syntax on
set background=dark
let g:solarized_termtrans = 1
colorscheme solarized
更新:根据Jim Stewart的说法,这也适用于Kitty。
let g:solarized_termtrans = 1
解决了一个问题,即空行的背景颜色为灰色,但文本行的背景颜色在内容后面是黑色。 - Jim Stewarthttps://github.com/altercation/solarized/tree/master/iterm2-colors-solarized
下载 Solarized 包 (https://github.com/altercation/solarized) 并按照以下步骤进行:
打开 iTerm 2,打开偏好设置,单击偏好设置工具栏中的“Profiles” (曾用名: Addresses, 曾用名:Bookmarks) 图标,然后选择“colors”选项卡。单击“load presets”,然后选择“import...”。选择 Solarized Light 或 Dark 主题文件。
现在,您已经将 Solarized 颜色预设加载到 iTerm 2 中,但尚未应用它们。要应用它们,只需从左侧的配置文件列表窗口中选择一个现有的配置文件,或创建一个新的配置文件。然后从“Load Presets”下拉菜单中选择 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
这在我使用的OS X 10.9.1中的iTerm 2和终端中都起作用。我犯了一个错误,就是在设置termtrans和termcolors之前声明了颜色方案(而且我需要这两个东西才能让它工作)。正如其他人所说,我将我的终端类型设置为xterm-256color。
if !has("gui_running")
let g:solarized_termtrans=1
let g:solarized_termcolors=256
endif
colorscheme solarized
set background=dark
从作者: http://ethanschoonover.com/solarized/vim-colors-solarized
对于终端用户的重要说明:
如果你要在终端模式下使用Solarized(即不是在gvim或macvim等GUI版本中使用),请务必考虑将终端仿真器的配色方案设置为使用Solarized调色板。在官方Solarized下载页面提供了一些流行的终端仿真器和Xdefaults调色板。如果您不使用这些颜色,Solarized需要被告知将其颜色方案降级为与有限的256个终端调色板兼容的一组颜色方案(而通过使用终端的16个ansi颜色值,您可以设置Solarized调色板的正确、特定值)。
如果您使用自定义终端颜色,solarized.vim应该可以直接为您工作。如果您使用支持256种颜色的终端仿真器并且不想使用自定义的Solarized终端颜色,则需要使用降级的256种颜色方案。要这样做,只需在colorschem solarized行之前添加以下行:
let g:solarized_termcolors=256
我再次建议您手动或通过导入中的许多终端方案将您的终端颜色更改为Solarized值。
Bill Turner的答案是可行的,但有一种方法可以使颜色与MacVim完全匹配。Solarized专门支持iTerm2,以及其他终端仿真器。
colorscheme solarized
这样应该可以将vim颜色在iTerm2中设置为与gui编辑器完全相同。
解决这个问题的简单方法是:
在vim-color-solarized的colors目录中存在一个名为'solarozed.vim'的文件。
打开这个文件并搜索:
exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'"
将其替换为:
exe "let s:bg_back = ' ".s:vmode."bg=".s:none ."'"
我尝试了之前的所有建议。我只是在 .vimrc 中添加了 set t_Co=256
,问题就解决了。我不需要创建一个 tmux
别名或更改我的配置文件。