如何让日晒配色方案与 gnome-terminal、tmux 和 vim 一起使用?

art*_*bot 26 colors vim tmux gnome-terminal

围绕这个有很多问题,但这是因为有太多的变数。在我开始工作之前,我必须拼凑来自许多网站的说明。

首先,我无法在 gnome-terminal 中轻松设置 16 种日光化颜色定义(我手动/单击才意识到我没有正确设置顺序/映射)。一旦我确定我继续前进......

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

然后我意识到 vim 曾经在 tmux 中运行过 v.wonky。这引起了广泛的争论,但很少有答案(主要是关于设置TERM为xterm-256colors)对我有用。我最终也解决了这个问题。

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

art*_*bot 25

Solarized 提供非常具体的颜色。您无法在标准的 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"
Run Code Online (Sandbox Code Playgroud)

铌。在这里,我覆盖了 Solarized 最暗和最亮的颜色。如果你喜欢,你可以使用原件,正如评论的那样。

够好了。现在安装Solarized VIM颜色文件放置在该文件中~.vim/colors/solarized.vim。

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

现在 vim 颜色可以工作了,但如果它在 tmux 中运行就不行了。

下一点非常令人困惑。大多数建议都说将TERM外部 tmux设置为xterm-256colors,但是当我这样做时,tmux 甚至不会启动。它也让我感到困惑:曝光不是说 256 调色板是一个糟糕的近似值吗?好吧,这很令人困惑,无论如何,它不起作用,所以我需要另一种方法:

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

xterm-16color|xterm with 16 colors,
    colors#16, use=xterm,
Run Code Online (Sandbox Code Playgroud)

然后安装这个 sudo tic /tmp/foo

最后,别名tmux如下:

alias tmux='TERMINFO=/usr/share/terminfo/x/xterm-16color TERM=xterm-16color tmux -2'
Run Code Online (Sandbox Code Playgroud)

我现在在终端、vim 和 vim-inside-tmux 中获得了完全正确的颜色。铌。该-2选项告诉tmux使用 256 调色板,这真的很令人困惑,因为 env 变量似乎在告诉它否则......我真的不知道,而且恐怕我真的不在乎学习曲线,因为我现在有一个漂亮的彩色终端,可以正常工作。

  • 有趣的是,您需要做多少工作才能在文本编辑器中使用 16 种颜色! (2认同)

小智 9

我还发现了这个项目:

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

谢谢你的提示:-)