2012-10-07 143 views
2

我想根據文件擴展名vim更改文件類型。在vim中根據文件擴展名更改文件類型

我在下面的代碼我.vimrc

autocmd BufNew,BufNewFile,BufRead *.txt,*.text,*.md,*.markdown setlocal ft=markdown 

但是當我打開一個文件,進一步擴展.md文件,文件類型沒有變化。我運行:set ft命令,它顯示輸出爲filetype=modula2

我做錯了什麼?

編輯:

我開始重新命名我的老.vimrc文件調試和創建一個新的只有這條線。它工作正常。然後我替換了舊的.vimrc文件,並且一切似乎都正常。猜猜這是因爲我使用的一些插件中的一些問題。

但接受ZyX的答案,因爲它認爲我是一個替代方法來做到這一點。

+0

看起來不錯。你確定你的vimrc或插件沒有衝突的線嗎? –

+0

我主要確定在我的vimrc中沒有衝突的行。但是有沒有確定的方法來確定是否存在衝突? – Sudar

+0

最簡單的方法是使用一個新的vimrc,這是唯一的行(當然是備份你現有的vimrc)。然後看看你是否可以重現這種行爲。 –

回答

1

想知道這條線是在filetype … on之前還是之後。在前一種情況下,您應該嘗試在該行之後放置它(您的自動命令)。

augroup filetypedetect 
    autocmd BufNew,BufNewFile,BufRead *.txt,*.text,*.md,*.markdown :setfiletype markdown 
augroup END 

:這是在做這樣的事情的默認方式,如果你把它放到~/.vim/ftdetect/markdown.vim和使用setfiletype markdown,而不是setlocal ft=markdown更好。在這種情況下,~/.vim必須在'runtimepath'選項中的/usr/share/vim/*路徑之前(默認情況下爲/usr/share/vim/*路徑)。

5

我創建了一個~/vim/ftdetect/markdown.vim文件,該行

autocmd BufNewFile,BufRead *.md,*.mkdn,*.markdown :set filetype=markdown 

閱讀有關文件類型的文檔,如果setfiletype文件類型未設置只設置。因此,您需要使用set來無條件更改文件類型。

1

我能夠通過在Vim \ vim74 \ syntax目錄中創建目標語法文件的重命名副本來獲得替代文件​​擴展名的語法高亮顯示。

爲了使* .MD開放作爲.markdown:

副本markdown.vim md.vim

或粘貼markdown.vim的副本的語法文件夾,然後重命名該副本md.vim 。

(在win7上運行vim74)