2013-10-07 33 views
2

我剛安裝了GVim for Windows版本7.4。 我也創建了以下內容的gvimrc文件:gvimrc部分沒有考慮到(Windows 7)

set tabstop=2   " Set the tabstop to 2 spaces 
set shiftwidth=2  " Shiftwidth should match tabstop 
set expandtab   " Convert tabs to <tabstop> number of spaces 
set smartindent  " Let vim help you with your code indention 
highlight Comment guifg=#409040 
highlight SpecialComment guifg=#409040 
highlight String guifg=Blue 
highlight ColorColumn guibg=LightGray 
set colorcolumn=81 
set tw=0 

某些線條考慮在內。 例如:set tabstop=2

其他行不被考慮在內。 例如:,highlight Comment guifg=#409040

如果我稍後使用:so $MYGVIMRC運行gvimrc文件,則會考慮所有行。

那麼,這些故障線路有什麼問題? 他們被別的東西覆蓋了嗎?

注意:這個gvimrc文件在Ubuntu和Mac上工作正常。

回答

3

應該工作,即使它是清潔,以創建自己的色彩方案,而不只是有選擇地重寫一些定義。我懷疑在之後執行()(可能由諸如GUIEnter之類的事件觸發),並且(重新)設置顏色定義。 :scriptnames的輸出可能會有所幫助。

如果你不能找到問題的根源,而不願寫自己colors/myscheme.vim文件,嘗試

:autocmd GUIEnter,ColorScheme * highlight Comment guifg=#409040 
... 
+0

根據':scriptnames',gvimrc是最後一個被調用的源。 按建議添加':autocommand .....'修復了這個問題。 –

+0

它可以幫助解決根本原因嗎? –

+0

太棒了,你現在至少有一個解決方法。要找到根本原因,您需要調查':autocmd VimEnter,GUIEnter,ColorScheme'列出的所有命令;其中一個(希望)重置您的突出顯示定義。 –

0

請參閱:help initialization以瞭解整個init過程,它可以幫助您解決問題。

可能發生的情況是,您在.vimrc中設置了colorscheme,這在gvimrc之前調用。 vimrc的源代碼是第3步,因爲gvimrc的源在init的第8步。

如果是這種情況,則無法重新定義已定義的顏色組。如果要重新定義的東西,在飛行中,你必須首先通過使用例如禁用:

highlight Comment NONE   "remove the Comment highlight group 
highlight Comment guifg=#409040 "redefine the Comment hightlight group 
+0

您從哪裏有關於「不重新定義顏色組」的一部分?另外,它在他明確提供他的.gvimrc的時候工作! –

+0

看來這可能是我的一個誤解,但我已經觀察到,如果我重新定義了一個現有的組而沒有重新設置它,那就不成功了。可能是一個錯誤,而不是一個記錄的功能... –

+0

在我的情況下,重新定義它之前重置顏色並沒有幫助。 –