我有一些用於輸入大括號的字符映射,我想根據文件的擴展名採取不同的行爲 - 我想這將是非常有用的一般能力。如何讓VIM對不同的文件類型有不同的表現?
關於如何使我的.vimrc或插件發生這種想法的任何想法?
謝謝!
我有一些用於輸入大括號的字符映射,我想根據文件的擴展名採取不同的行爲 - 我想這將是非常有用的一般能力。如何讓VIM對不同的文件類型有不同的表現?
關於如何使我的.vimrc或插件發生這種想法的任何想法?
謝謝!
基本上有兩種方法。使用filetype插件,或使用文件類型或擴展自動命令。
的自動命令(放置在.vimrc/_vimrc)採取的形式,也
autocmd Filetype cpp set textwidth=100
或
autocmd BufRead *.cpp,*.h,*.c set textwidth=100
(顯然set textwidth=100
可以與任何其他命令代替)
更好的解決方案是,對於每種文件類型,使用文件~/.vim/after/ftplugin/<filetype>.vim
,特別是如果您有很多文件類型的自定義命令。這些文件中的命令將在加載給定類型的文件後執行。
在補充jkerian's answer,這裏是有關ftplugins其他問題幾個環節(如腳本局部變量,映射,命令,設置,縮寫等寫英尺具體配置時,應使用):
我建議這樣的設置是本地唯一的緩衝區使用SETLOCAL。 (例如setlocal textwidth = 100)使用進行映射,使它們位於緩衝區本地。 (例如,imap }} =%''a) –
2010-09-06 14:49:25
我檢查過,tw是一個緩衝區本地選項。因此,我沒有修補jkerian的答案,即使作爲一般規則,我們必須始終在ft-specif配置設置中使用setlocal&co。順便說一句,彼得,在你的使用情況下不夠cinkeys? – 2010-09-06 15:41:10
謝謝!使用ftplugin工作得很好。 – 2010-09-06 16:28:29