如何获得与gnome-terminal,tmux和vim配合使用的日晒色彩方案?


25

围绕此有很多问题,但这是因为变量太多了。在进行这项工作之前,我不得不整理许多站点的说明。

首先,我无法轻松地在gnome终端中设置16种日光色定义(我手动/单击鼠标只是为了意识到我没有正确的顺序/映射来完成此操作)。一旦修好了,我就继续前进...

然后我将日光灯的颜色按vi-ish的方式工作,但是在某些高亮显示中出现了一些奇怪的黑色背景。修复问题后,我继续前进...

然后我意识到,一旦在tmux中运行,vim就会诉诉winky。这已经引起了广泛的争论,但是很少有答案(大多数都说要设置TERMxterm-256colors)对我有用。我最终也解决了这个问题。

Solarized是一个非常不错的调色板(尽管我喜欢最深的对比度,但我将最暗的基础颜色变暗了,而最亮的颜色却变亮了,但在校准过的屏幕上发现tmux的“白色”太黄了-在典型的未经校准的笔记本电脑屏幕上,可能还不错)通常太蓝了!),所以我要发布此问题及其答案,以分享我的学习成果。


我使用xterm-256color(不是GNOME终端),tmux和vim,并且不记得必须跳过这么多箍附近的任何地方。我唯一要做的就是将终端安装到太阳能终端上(xterm使用XResources而不是配置文件),这很难弄清楚,添加 solarized.vim,我一切都准备好了。
jw013 2013年

Answers:


24

晒太阳可产生非常特定的颜色。您实际上无法在标准的256色调色板中获得这些颜色。实现此目的的唯一方法是通过在终端仿真器中设置确切的颜色,然后应用程序认为它们仅使用标准的16种颜色(8 + 8亮),但这些颜色已精确映射到Solarized调色板。

Gnome终端不提供导出/导入调色板或配置文件的简便方法,但是您可以使用以下bash脚本来实现:

#!/bin/sh
DARK_BG='#000014141A1A'
# original: DARK_BG='#00002B2B3636'
LIGHTEST='#FFFFFBFBF0F0'
# original: LIGHTEST='#FDFDF6F6E3E3'

gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_background" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_colors" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/palette" --type string "#070736364242:#D3D301010202:#858599990000:#B5B589890000:#26268B8BD2D2:#D3D336368282:#2A2AA1A19898:#EEEEE8E8D5D5:$DARK_BG:#CBCB4B4B1616:#58586E6E7575:#65657B7B8383:#838394949696:#6C6C7171C4C4:#9393A1A1A1A1:$LIGHTEST"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "$DARK_BG"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/foreground_color" --type string "#65657B7B8383"

Nb。在这里,我覆盖了Solarized最深色和最浅的颜色。您可以根据需要使用原件。

够好了。现在,通过将Solarized vim颜色文件放置在中来安装该文件~.vim/colors/solarized.vim

现在您可以告诉Vim使用该配色方案colo solarized。但这并不太奏效,我不得不告诉Vim使用16色调色板set t_Co=16。我把这两个都贴了~/.vimrc

现在,vim颜色可以使用了,但是如果在tmux中运行了,就没有了。

接下来的这一点非常令人困惑。大多数建议都提到将TERMtmux外部设置为xterm-256colors,但是当我这样做时,tmux甚至无法启动。这也让我感到困惑:难道不是说256色调色板不是很好的近似值吗?好吧,这很混乱,无论如何,它没有用,所以我需要另一种方法:

创建一个/tmp/foo包含以下内容的文件:

xterm-16color|xterm with 16 colors,
    colors#16, use=xterm,

然后用 sudo tic /tmp/foo

最后,别名tmux如下:

alias tmux='TERMINFO=/usr/share/terminfo/x/xterm-16color TERM=xterm-16color tmux -2'

我现在得到准确正确的颜色在终端,在vim,和VIM-内,TMUX。Nb。该-2选项告诉tmux您使用256色调色板,这确实令人困惑,因为env变量似乎在告诉它……我真的不知道,而且我担心我真的不太在意这种学习曲线,因为我现在有一个漂亮的彩色端子,可以正常工作。


set t_Co=16为我做了把戏。在设置该选项语法之前,高亮显示根本不起作用。
Koraktor 2014年

2
要使16种颜色在文本编辑器中工作,您需要做很多工作,这很有趣!

注意:我发现在Gnome Terminal 3.18.3(在Ubuntu 16.04中)不再起作用-似乎不接受颜色,并且使用vim的t_Co = 256可以得到更好的结果。
artfulrobot

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.