2012-04-27 106 views
5

我在我的vim會話中有兩個緩衝區,並且在我的vimrc中設置了語法,我使用了minibufexpl來管理bufs。當一個緩衝區退出時vim語法關閉?

我用:q退出當前的buf,但另一個buf會自動設置句法關閉,我必須使用:set syntax = on手動打開語法高亮。有人能給我一個解決方案,在一個buf退出後不會自動設置語法嗎?謝謝!! (我試過:bd退出buf而不是:q,有時它保留語法,但有時沒有)。

+1

': set syntax = on'會強制使用syntax/on來突出顯示當前緩衝區。vim'腳本,它不會啓用語法高亮顯示。 – ZyX 2012-04-27 04:21:25

回答

1

您可以在您的vimrc中使用語法啓用或語法。有關更多信息,請使用:h語法。

好吧然後檢查你的語法文件是正確的,它應該looke這樣

AU BufNewFile,BufRead *等的.cpp設置語法= cpp11 < - 這是行我有cpp文件。

希望得到這個幫助。

+1

我已經在我的vimrc中設置了語法。關鍵是當我退出一個文件時,其他文件會自動設置句法。 – 2012-04-27 02:03:08

0

一個插件行爲不端。

關閉緩衝區(並且丟失語法突出顯示)後,

:verbose set syntax? 

這會顯示類似

syntax=cpp 
    Last set from C:\Program Files\Vim\vim73\syntax\syntax.vim 

您可能還能夠看到什麼不順心我做

:debug quit 

如果一切都失敗,請嘗試禁用消除錯誤的來源一個接一個的插件(或全部刪除,並逐個啓用)。在某個時候,問題將會出現/消失,並且您已經找到了犯罪派對。

2

這可能是太遲,但我遇到相同問題,發現添加行

set hidden 

到我的.vimrc解決了這個問題。當你輸入「:q」時,這會讓vim隱藏緩衝區而不是關閉緩衝區。當我使用minibufexplorer進行導航時,它似乎還能讓文件之間啓用語法高亮顯示。

希望這會有所幫助。

3

如果您使用minibufexpl.vim,以下內容添加到您的.vimrc:

let g:miniBufExplForceSyntaxEnable = 1 

這似乎在VIM中的錯誤引起的。有關詳情,請參閱release notes for minibufexpl version 6.3.1

請注意,這會爲工作:BD但不:Q

+0

v 6.5.2版本(2013年6月17日發佈) – 2015-03-03 07:41:18

1

可能是你應該加入這一行gvimrc

autocmd BufDelete * syntax on 
+0

v 6.5.2(2013年6月17日發佈) – 2015-03-03 07:41:35