无法在iTerm或终端中使用vim主题

时间:2014-03-20 19:49:28

标签: macos vim

首先我知道t_Co,TERM = xterm-256colors等。我不能使用macVim或gvim因为我需要它在ssh中。但是当我在vim中设置主题(每个,除了peaksea)我得到:

enter image description here

我找到了一个“解决方案”,它与ansi颜色相关联。当我们在这里改变时:

enter image description here

颜色变化。对于日晒主题,我发现一个术语主题与其他ansi颜色(接近曝光),它工作正常。但是当我需要另一个主题时,我应该为这个主题设置ansi。问题是如何在不使用标准ansi颜色的情况下设置主题?如果我们不能为什么peaksea工作正常并且不使用ANSI颜色(我尝试改变它)?

PS:iTerm一切都是一样的。

PS2:航空公司所有颜色都有效的一件有趣的事情。

1 个答案:

答案 0 :(得分:7)

Vim通过ANSI颜色代码为终端中的文本着色。这是一个例子:

:highlight Comment ctermfg=Cyan ctermbg=Black

青色和黑色转换为ansi色号。您甚至可以在突出显示命令中指定数字,而不是青色和黑色。请参阅帮助文件:

:help cterm-colors

当终端支持256种颜色时,编写colorscheme的人可以选择更多,但选项仍然限于定义的256种颜色(http://www.pixelbeat.org/docs/terminal_colours/)。峰海作者从现有的256个选项中选择了颜色,这就是为什么它在没有重新配置终端优先级的情况下工作的原因。这是来自peaksea.vim的片段

hi Normal       ctermfg=252 ctermbg=234 cterm=NONE

航空公司还使用现有256调色板中的颜色。 https://github.com/bling/vim-airline/blob/master/autoload/airline/themes/base16.vim

" Color palette
let s:gui_dark_gray = '#202020'
let s:cterm_dark_gray = 234

在上面的例子中,' gui'代码用于MacVim / gVim,cterm用于终端。

如果配色方案作者想要使用256色调色板中不可用的颜色,则必须将终端配置为临时覆盖给定数字的rgb颜色值。这可以通过脚本以及终端应用程序的首选项菜单来完成。见https://github.com/chriskempson/base16-shell。这可以通过未修改前16个数字的方式完成。但是,如果vim使用数字20表示红色,则终端上使用数字20的所有程序都将被转换为红色。

我创建了一个测试并向自己证明它会起作用。这是要点。 https://gist.github.com/cskeeters/9674586

另一种选择是找到你喜欢的颜色标注,并改变它们以使用256色调色板中最接近的颜色,而不是使用0-16并依赖于终端配置。航空公司的主题可能会给你一个像上面链接中的base16一样的快速启动。

colortrans.py要点https://gist.github.com/MicahElliott/719710可用于将base16-builder颜色方案rgb值映射到最接近的256色数。

https://github.com/chriskempson/base16-builder/blob/master/schemes/default.yml

cat ../base16-builder/schemes/default.yml | sed -nre 's/base(..): "(.*)"/\2/p' | xargs -I {} ./colortrans.py {}

RGB 151515 -> xterm color approx 16 (000000)
RGB 202020 -> xterm color approx 16 (000000)
RGB 303030 -> xterm color approx 59 (5f5f5f)
RGB 505050 -> xterm color approx 59 (5f5f5f)
RGB b0b0b0 -> xterm color approx 145 (afafaf)
RGB d0d0d0 -> xterm color approx 188 (d7d7d7)
RGB e0e0e0 -> xterm color approx 188 (d7d7d7)
RGB f5f5f5 -> xterm color approx 231 (ffffff)
RGB ac4142 -> xterm color approx 131 (af5f5f)
RGB d28445 -> xterm color approx 173 (d7875f)
RGB f4bf75 -> xterm color approx 216 (ffaf87)
RGB 90a959 -> xterm color approx 107 (87af5f)
RGB 75b5aa -> xterm color approx 109 (87afaf)
RGB 6a9fb5 -> xterm color approx 73 (5fafaf)
RGB aa759f -> xterm color approx 139 (af87af)
RGB 8f5536 -> xterm color approx 95 (875f5f)

如果您分解并且只想为您使用的每个主题重新配置终端,请知道您可以在iTerm中导入颜色预设。许多都可以从https://github.com/chriskempson/base16-iterm2获得。然后你只需要调用":colorscheme schemeName'在vim中(或将它放在你的.vimrc中)