2012-05-31 18 views
3

我想爲自定義編程語言創建vim語法高亮文件。即動態導航系統內部的C/AL。複雜的ftdetect插件

問題是無法通過文件擴展名進行檢測。歷史上C/AL使用* .TXT文件。突出顯示所有* .TXT文件也不好,因爲它們中的一些可能包含C/AL代碼。

我知道VIM不僅可以通過擴展檢測語言,還可以通過文件內容檢測語言。我在official manual中發現了一些例子。然而它說明我可以使用第一種方法,或第二種。

是否可以一次性合併它們?我在哪裏可以找到這種行爲的例子?

預先感謝您!

+1

我不確定您爲什麼/如何使用這兩種方法?要麼使用autocmds通過文件名進行檢測,要麼使用可以使用更復雜的過程來確定文件類型的腳本進行檢測。 – Raimondi

+0

您是否有機會在某處共享該C/AL語法文件?我討厭Dynamics NAV中的編輯。 2013 R2仍然沒有真正的撤銷。和VIM =神奇:) –

回答

5

您可以使用getline根據文件內容細化檢測。例如,該檢測.tmp文件XML:

autocmd! BufNewFile,BufRead *.tmp 
    \ if getline(1) =~ '<?\s*xml.*?>' | 
    \  setfiletype xml | 
    \ endif 

另一種方法是一個modeline添加到每個C/AL文件。