如何获得与 gnome-terminal、tmux 和 vim 一起使用的日光配色方案?

如何获得与 gnome-terminal、tmux 和 vim 一起使用的日光配色方案?

围绕这个问题有很多疑问,但这是因为变量太多。在我开始这项工作之前,我必须将许多网站的说明拼凑在一起。

首先,我无法在 gnome-terminal 中轻松设置 16 种日晒颜色定义(我手动/单击完成,只是意识到我没有得到正确的顺序/映射)。一旦我确定了这一点,我就继续前进......

然后我在 vim 中使用了日晒颜色,效果还不错,但是在某些突出显示中出现了一些奇怪的黑色背景。一旦我解决了这个问题,我就继续前进......

然后我意识到,一旦在 tmux 中运行,vim 就变得很奇怪。这引起了广泛的争论,但很少有答案(主要是关于设置TERMxterm-256colors对我有用。我最终也解决了这个问题。

晒伤是一个非常好的调色板(尽管我将最暗的基色变暗并调亮了最亮的颜色,因为我更喜欢更高的对比度,并且发现 tmux 的“白色”在我的校准屏幕上太黄了 - 在典型的未校准笔记本电脑屏幕上可能很好,因为它们是通常太蓝了!),所以我发布这个问题及其答案来分享我的学习成果。

答案1

晒后会产生非常特定的颜色。你无法在标准 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"

铌。在这里,我覆盖了 Solarized 的最暗和最亮的颜色。如果您愿意,可以使用原件,如评论所示。

够好了。现在安装日光照射的 vim 颜色文件通过将该文件放入~.vim/colors/solarized.vim.

现在您可以告诉 Vim 使用该配色方案colo solarized。但这并不完全有效,我不得不告诉 Vim 使用 16 色调色板set t_Co=16。我把这两件事都放进了我的~/.vimrc档案里。

现在 vim 颜色可以工作,但如果它在 tmux 内运行则不行。

接下来的一点非常令人困惑。大多数建议都说将TERM外部 tmux 设置为xterm-256colors,但当我这样做时, tmux 甚至不会启动。这也让我感到困惑:solarized 不是说 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-inside-tmux 中的正确颜色。铌。该-2选项告诉tmux我们使用 256 调色板,这真的很令人困惑,因为环境变量似乎会告诉它否则......我真的不知道,而且我担心我真的不关心学习这个知识曲线,因为我现在有一个漂亮的彩色终端,可以正常工作。

答案2

我还找到了这个项目:

https://github.com/sigurdga/gnome-terminal-colors-solarized

感谢您的提示:-)

相关内容