复杂的ftdetect插件

时间:2012-05-31 14:01:05

标签: vim syntax syntax-highlighting

我想为自定义编程语言创建vim语法高亮文件。即C / AL,它是Dynamics NAV系统的内部。

问题在于无法通过文件扩展名进行检测。历史上,C / AL使用* .TXT文件。突出显示所有* .TXT文件也不好,因为其中一些文件可能包含C / AL代码。

我知道VIM不仅可以通过扩展来检测语言,还可以通过文件内容来检测语言。我在official manual中找到了一些例子。然而,它表明我可以使用第一种方法,或第二种方法。

是否有可能将它们组合在一起?我在哪里可以找到这种行为的例子?

提前谢谢!

1 个答案:

答案 0 :(得分:5)

您可以使用getline根据文件内容优化检测。例如,这会检测.tmp文件中的XML:

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

另一种方法是在每个C / AL文件中添加modeline