2013-02-08 57 views
7

我使用vim編輯一些python文件,最近偶爾出現語法突出顯示在vim中保存緩衝後消失。我試圖重置syntax onset filetype=python,但無濟於事。我根本不知道是什麼原因導致這個問題,所以現在我只有最少的診斷信息。但是之前有沒有人遇到過這種情況,或者哪裏可能發生故障?語法高亮顯示在文件保存過程中隨機消失

+0

你可以發佈你的vimrc? – mindvirus 2013-02-08 18:48:06

+0

和什麼插件? – Kevin 2013-02-08 18:50:49

+0

@mdkess它相當長,我只是上傳到pastebin http://pastebin.com/dggSfKkX – nye17 2013-02-08 18:51:31

回答

5

這不是一個解決方案,但很難在評論中寫入/閱讀。

我的意思是說,當我開始修理我自己的.vimrc時,我正忙於語法/突出顯示,這就是爲什麼我注意到它。
syntax on/syntax enable只是準備文件加載的東西(增加了很多auBufNewFile/BufRead)。因此,如果某個插件在寫入文件時混淆了語法/高亮設置,則必須重新加載該文件才能發生所有「魔術」,但設置filetype還不夠。執行:au BufRead,您將看到在啓動語法時添加的所有自動命令。但是必須加載文件才能獲得所有settigs。
看到這個:>syntax-loading

如果你不想重新加載該文件,嘗試syntax enable,我認爲這是syntax on不同。
或試試:doautocmd filetypedetect BufRead %,參見>autocmd-execute

我不知道是什麼原因造成的問題,難道是你?如果你添加了一些自動命令,或者做了自己的顏色/語法?
否則,直到您找到解決方案,您可以嘗試在.vimrc的末尾添加autocmd BufWritePost * <with the commands above that works>,在這種情況下使用augroup

下面是一個例子:

augroup myResetSyntax 
    au! 
    autocmd BufWritePost * syntax enable | doautocmd filetypedetect BufRead "%" 
augroup END 
1

現在過了一段時間,我才發現扭曲突出顯示,通過摺疊,而不是不是與文件保存有關的任何神祕力量造成的,所以一個簡單的修復*將放以下在我的vimrc

noremap <F9> <Esc>:syntax sync fromstart<CR> 
inoremap <F9> <C-o>:syntax sync fromstart<CR> 

並按F9,只要發生了一些棘手的事情。

  • 解決方案從here
2

發現你也可以通過簡單地重新加載緩存恢復語法:

:e