3

我想为自定义编程语言创建 vim 语法高亮文件。即动态导航系统内部的 C/AL。

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

我知道 VIM 不仅可以通过扩展名检测语言,还可以通过文件内容检测语言。我在官方手册中找到了一些例子。但是它声明我可以使用第一种方法或第二种方法。

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

先感谢您!

4

1 回答 1

5

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

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

另一种方法是为每个 C/AL 文件添加一个模式行。

于 2012-05-31T16:21:37.353 回答