2011-09-28 26 views
3

所以我創建了自己的語法高亮文件,如果只打開一個文件,效果很好。但是,如果我做:split otherFile,打開的另一個緩衝區沒有語法高亮顯示。我嘗試了各種各樣的東西,如:syntax on等。可能是什麼問題?使用拆分命令時,VIM會丟失語法高亮

我使用的是Ubuntu 11.04,64位版本。

VIM版本:VIM - 六提高7.3(2010年8月15日編譯2011年3月24日7時07分34秒)

我創建了一個簡單的語法高亮文件,並把它放在〜/ vim的/插件/ syntax.vim

語法高亮文件的最後一行是let b:current_syntax =「sth」。 我沒有做過任何類型的連線,例如在.vimrc中指定文件位置,語法自動運行(打開一個文件)。

+0

你應該包括平臺,版本。你是如何將語法連接到你的文件類型的?有沒有自動命令? – sehe

+0

我在文中加入了更多描述。希望它能更好地澄清問題。 – mnovakovic

+1

當你在這兩個文件上運行':set filetype?'時會發生什麼? – PDug

回答

0

語法文件屬於~/.vim/syntax/sth.vim而不是~/.vim/plugin/syntax.vim。後者在啓動時只有一次採購,這可能是爲什麼它只適用於第一個加載的文件。

要使語法變爲活動狀態,您需要:setf sth,或者在您的文件中插入相應的模式行,或者爲您的語法寫入文件類型檢測以使其自動化。

0

我最近有這個問題,更普遍。也就是說,問題出現在所有文件類型上。調試了一下後,我發現文件類型被正確識別,但是對於新的分割,語法在某種程度上變得未被設置。

我仍然不是100%肯定如何發生這種情況,但對於未來谷歌的訪客,我會寫下什麼固定的麻煩我:我在.vimrc移動set syntax = on早得多。經過多年的增長,set syntax = on的線已經飄落,直到它低於其他一些東西。將它移回(接近)文件頂部會爲我解決問題。下面是我的.vimrc開始看起來像現在:

" First two uncommented lines only useful if you use Tim Pope's vim-pathogen. 
" https://github.com/tpope/vim-pathogen 
execute pathogen#infect() 
execute pathogen#helptags() 

" Most general settings first 
set nocompatible   " Vim rather than Vi; implied by this file 
syntax on     " Syntax highlighting on 
filetype plugin indent on " Filetype detection 

" ... etc. 
0

復活這一點,因爲我只是觀察到相同的行爲。我找到的解決方案是將filetype on設置添加到我的.vimrc文件。 fwiw,我在syntax on之後立即添加它。 syntax on碰巧已經在我的.vimrc文件的頂部。所以,這裏是我的.vimrc的前幾行:

1 " Activates Syntax Highlighting 2 syntax on 3 4 " Filetype on 5 filetype on