2014-01-29 94 views
7

~/.vimrc包含以下行:Vim的:語法文件沒有自動加載

au BufNewFile,BufRead *.fsh,*.vsh setf glsl 

~/.vim/syntax目錄包含glsl.vim如果手動加載(:setf glsl在VIM)的作品,但在編輯時,它不會自動加載文件與這些擴展名。如何自動爲這些文件獲取語法高亮顯示?像往常一樣,語法高亮功能適用於其他文件。我的Vim版本是在Linux Mint上運行的。

+2

這可能是一個在黑暗中拍攝,但:你嘗試過使用擴展的形式'設置文件類型= glsl',而不是'SETF glsl'? –

+2

@Nadir Sampaoli:這不是一個「擴展形式」,它是一個不同的命令。請參閱':help:setf'。 – benjifisher

+1

@SurvivalMachine:使用':e foo.fsh'然後使用':verbose set ft?'會發生什麼? ':verbose au BufNewFile * .fsh'如何? – benjifisher

回答

2

我不認爲這條線可以在您的~/.vimrc。由於裝貨單,它可能不得不在~/.vim/filetype.vim而是。嘗試把這個放入該文件:

augroup filetypedetect 
    au BufNewFile,BufRead *.fsh,*.vsh setf glsl 
augroup END 
+0

VIM命令可以在.vimrc中。這是它存在的關鍵。 –

+1

Vim命令*可以*在.vimrc中,但它們也可以在其他地方。文件類型命令應該在filetype.vim中,並且在過去試圖將其強制轉換爲.vimrc時遇到了問題。這是因爲加載順序可能很重要,正如[此問題]所暗示的(https://stackoverflow.com/questions/2889766/best-way-to-organize-filetype-settings-in-vim-and-vimrc)。 –

+0

嘗試將其添加到'/ usr/share/vim/vim73/filetype.vim'。在'〜/ .vim/filetype.vim'中放入'au BufNewFile,BufRead * .fsh,*。vsh setf glsl'後,它就起作用了。 – PeqNP

相關問題