2012-12-26 74 views
6

我需要這個來完成一個插件,我爲了改變狀態行的顏色取決於模式。如何找出當前colorscheme用於某些特定顏色的某個顏色值?

但是我遇到了一個明顯的問題,我怎麼知道用戶使用的是什麼主題?即使我知道我不能爲每個主題製作特定的顏色。

因此,如何知道當前主題用於狀態行的前景和背景顏色。

編輯1:

在情況下,我並不清楚,我正在尋找一種方法來查找某些東西ctermfg/bgguifg/bg。現在的狀態線。 :)

編輯2:

顯然,如果我這樣做:hi StatusLine我得到了我所需要的,不過,我需要完善它只得到了價值,而不是它的全部。猜猜我將不得不使用一些正則表達式來找出價值。如果有人知道一個更簡單的方法,請分享它(或者如果你已經用正則表達式計算出來)。謝謝!

回答

11

可以使用synIDattr()功能來查詢各種屬性(如前景色和背景色)語法高亮的ctermbgctermfg。要確定突出顯示組的ID,可以使用hlID()。見:help hlID()

:echo synIDattr(synIDtrans(hlID('StatusLine')), 'fg') 
+0

這正是我正在尋找的!謝謝! – greduan

1

您可以根據:help background

:echo &background 

拿到後臺應該有一個​​設定也一樣,但它並沒有爲我工作。

編輯: 有變量guibgguifg,在:hi[glight]

+0

哦不,我不是說可以選擇使用黑暗/淺色背景。而是一種知道主題使用什麼顏色的方法。例如,如何知道主題用於評論的確切顏色。 – greduan

+0

哦,我讀了你指出的文件,我想這可能是,但我不確定。 – greduan

+0

可能使用'&fg'和'&bg',但我需要運行一些測試來確保。如果你發現肯定要告訴我這件事。 :) – greduan

相關問題