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

我发现了一个"解决方案",它与ansi颜色相关联.当我们在这里改变它:

颜色变化.对于日晒主题,我发现一个术语主题与其他ansi颜色(接近曝光),它工作正常.但是当我需要另一个主题时,我应该为这个主题设置ansi.问题是如何在不使用标准ansi颜色的情况下设置主题?如果我们不能为什么peaksea工作正常并且不使用ANSI颜色(我尝试改变它)?
PS:iTerm一切都是一样的.
PS2:航空公司所有颜色都有效的一件有趣的事情.
Vim通过ANSI颜色代码对终端中的文本进行着色.这是一个例子:
:highlight Comment ctermfg=Cyan ctermbg=Black
Run Code Online (Sandbox Code Playgroud)
青色和黑色转换为ansi色号.您甚至可以在突出显示命令中指定数字,而不是青色和黑色.请参阅帮助文件:
:help cterm-colors
Run Code Online (Sandbox Code Playgroud)
当一个终端支持256种颜色时,有人会创作一个colorscheme有更多选择,但选项仍然限于定义的256种颜色(http://www.pixelbeat.org/docs/terminal_colours/).峰海作者从现有的256个选项中选择了颜色,这就是为什么它在没有重新配置终端优先级的颜色的情况下工作的原因.这是来自peaksea.vim的片段
hi Normal ctermfg=252 ctermbg=234 cterm=NONE
Run Code Online (Sandbox Code Playgroud)
航空公司还使用现有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
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,'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)
Run Code Online (Sandbox Code Playgroud)
如果您分解并且只想为您使用的每个主题重新配置终端,请知道您可以在iTerm中导入颜色预设.许多可以从https://github.com/chriskempson/base16-iterm2获得.然后你只需要在vim中调用":colorscheme schemeName"(或将它放在你的.vimrc中)