2012-04-01 44 views
7

我一直在玩終端VIM的顏色方案,並發現了一些惱人的令人沮喪的事情,至今我一直無法解決。爲什麼OS X上的終端VIM中的256色調色板發生了變化?

我期望16系統顏色改變。他們顯然是可配置的。出於這個原因,我試圖使用256色調色板來構建VIM色彩方案,無論終端的16(可配置)系統調色板如何,它都是相同的。

我只使用256色調色板中的所有顏色,包括背景。但是,我注意到如果我打開指定給終端的不同背景和文本顏色的終端,那麼VIM配色方案在兩個終端中顯得非常不同。

即使終端具有不同的背景,前景和系統調色板,我在Ubuntu上也看不到類似的行爲。

我會高興地接受解釋爲什麼發生這種情況的答案。

如果有人能告訴我一個解決方法,除了爲我想要使用的每套顏色設置設置特定終端之外,我會欣喜若狂。

+1

只是要清楚,你正在使用't_Co = 256'和'TERM = xterm方式256color'對? – 2012-04-01 18:39:55

+0

是的,那是在LOOOONG之前照顧的。 :) – toadjamb 2012-04-01 18:58:10

+0

它可能是自動調整,如下所述:http://apple.stackexchange.com/questions/29487/is-it-possible-to-disable-terminals-automatic-tweaking-of-colors-in-獅子 – 2014-08-04 20:18:44

回答

4

默認情況下,ANSI終端是16色設備,在gvim中工作的Vim配色方案在終端中將無法正常工作。

某些終端能夠使用88或256種顏色。你可以通過設置t_Co來告訴Vim。當然,在gvim中,256色仍然不足全RGB。

有一個名爲CSApprox的vim軟件包,由Matt Wozniski開發。它可讓您使用近似顏色的gvim配色方案。

這是我用我自己。

CSApprox包括一個文檔文件,它比我能在這裏解釋得更好。

網址:http://www.vim.org/scripts/script.php?script_id=2390

好運。

P.S.關於您的問題但是,我注意到如果我打開終端指定的不同背景和文本顏色的終端,那麼VIM配色方案在兩個終端中會顯得非常不同。

聽起來像OSX終端不會將顏色定義與256色xterm調色板分開;即通過操縱它的設置,你正在弄亂調色板或類似的東西。

終端應該可以將16色用戶可配置的東西與256色調色板分開。

+1

另一個有用的位信息,關於ANSI擴展支持更多的顏色來自:http:// www.mudpedia。org/wiki/Xterm_256_colors – Kaz 2012-04-01 18:49:57

+0

我已經很長時間瞭解了CSApprox,但使用它有兩個問題。一個是我只使用終端VIM,對GVim沒有興趣。第二個是我對我的顏色非常挑剔,並希望非常具體地選擇它們。 – toadjamb 2012-04-01 18:56:14

+0

'CSApprox'不適用於gvim。對於不使用gvim而是使用終端的用戶來說正是如此。只是gvim是配色方案應該如何顯示的參考模型。如果你對顏色挑剔(即想要選擇24個RGB位中的每一個),那麼我認爲你通過Vim做出了這樣的運氣。您必須通過其偏好設置來編輯終端的調色板。 – Kaz 2012-04-01 19:01:34

0

請張貼截圖,以便我們看到您看到的內容。沒有看到它們或比較它們的數值很難談論顏色。

那麼,我仍然在10.6.8,所以我從來沒有享受過Terminal.app顯示256色的能力。

但是,AFAIK,其默認的16種顏色不是從X11調色板中獲取的。它們可能在某處硬編碼,它們的值無論如何都是用戶可配置的。因此,我不知道爲什麼將默認的Red值更改爲任何內容都會改變Vim色彩的外觀。

然而,Terminal.app(最喜歡的其它終端仿真器),可以改變BackgroundTextBoldSelectionCursor的值。取決於您的顏色搭配的寫法,其中一些設置可能會覆蓋您的顏色配色的部分,最顯着的是Background

我已經有我的Terminal.app背景與我的Vim colorscheme的背景相匹配了很長一段時間,效果很棒。那麼,至少對於一個16色終端模擬器來說。

0

256色模式仍然只是一個索引調色板,與8和16色模式相同。應用程序只需通過調色板中的索引選擇一種顏色,然後由終端決定將實際使用哪種顏色。

兩個不同的終端碰巧爲這些索引選擇相同的顏色可能只是在216色RGB立方體內有6個級別的每個組件,所以分配這些顏色的「明顯」自然方法是從列表中選擇每一個(0,0x33,0x66,0x99,0xcc,0xff)。我想大多數終端都會這樣做,因此在相同的索引處給出相同的顏色。

如果兩個終端不同,這只是一個跡象表明他們正在使用其他方法來選擇其實際顏色。

+0

在所有終端仿真器上,默認的256色表應該基本相同。確切的顏色值可能會有所不同,但是默認顏色組有一個「標準」描述。顏色校準也可以產生輕微的變化。 – 2012-04-06 04:04:25

2

終端會動態調整某些顏色值,以確保與背景顏色的最小對比度。也許這就是你所看到的。

請附上顯示兩種不同配色方案的截圖。查看可用顏色的好腳本是256colors2.pl

0

如果您使用的是iTerm2,那麼您可能需要更改它正在報告的終端類型。

在你iTerm2首選項>檔案>終端>報告終端類型,設置爲xterm-256color

0

在Terminal.app又名蘋果終端,如果背景顏色沒有明確設置以及顏色會發生變化。

因此,與您的配色方案您在使用Normal色組,例如:

hi Normal ctermfg=188 ctermbg=234 

必須設置默認的背景顏色,然後你不應該看到的顏色任何進一步的修改。

注:我只注意到,這樣你就不會錯過任何重要輸出可能被影響的前景;)

相關問題