如何讓日曬配色方案與 gnome-terminal、tmux 和 vim 一起使用?
圍繞這個有很多問題,但這是因為有很多變數。在我開始工作之前,我不得不拼湊來自許多網站的說明。
首先,我無法在 gnome-terminal 中輕鬆設置 16 種日曬顏色定義(我手動/點擊只是意識到我沒有得到正確的順序/映射)。一旦我解決了這個問題,我就繼續……
然後我在 vim OK-ish 中使用了日曬顏色,但是在某些突出顯示中出現了一些奇怪的黑色背景。一旦我解決了這個問題,我就繼續…
然後我意識到 vim 曾經在 tmux 中執行過。這引起了廣泛的爭論,但很少有答案(主要是關於設置
TERM
為xterm-256colors
)對我有用。我最終也解決了這個問題。Solarized是一個非常好的調色板(儘管我將最暗的基色變暗並點亮最亮的顏色,因為我更喜歡更高的對比度,並且在我的校準螢幕上發現 tmux 的“白色”太黃了——在典型的未校準筆記型電腦螢幕上可能很好,因為它們’通常太藍了!),所以我發布了這個問題及其答案,以分享我的學習成果。
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"
NB。在這裡,我覆蓋了 Solarized 最暗和最亮的顏色。如評論所述,您可以根據需要使用原件。
夠好了。現在安裝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 中得到**了完全正確的顏色。**NB。該
-2
選項告訴tmux
使用 256 調色板,這真的很令人困惑,因為 env 變數似乎會告訴它……我真的不知道,恐怕我真的不在乎爬那個學習曲線,因為我現在有一個漂亮的彩色終端,它可以正常工作。