在 vim 中,如何覆盖模式行中的语法注释字符?

在 vim 中,如何覆盖模式行中的语法注释字符?

我有一个奇怪的汇编程序,它使用\作为一个注释字符。标准 vimasm语法使用#作为一个注释字符,这很糟糕,因为它既是错误的,又#是这个指令集 (它是 6502) 中的指令分隔符。

这太小众了,所以不值得为其创建新的语法文件。相反,我只想更改每个汇编程序文件的模式行中的注释字符。

我试过了:

\ vim: comments=:\\

...虽然它被接受了,而且我可以从执行中看到set comments它已被设置,但它实际上并没有做任何事情 ---comments语法高亮是否真的考虑了该选项?如果没有,是否有办法在模式行中覆盖它?

答案1

不,:help 'comments'语法高亮不会考虑它。此外,模式行中允许的命令池不包括:help :syn-match,而这正是您在这里真正需要的。

请注意,替代方案是不是编写整个语法脚本。您应该能够使用以下几行(未经测试)代码来实现所需的结果vimrc

augroup assembler
autocmd!
autocmd Syntax asm syn match asmComment "your pattern here" contains=asmTodo,@Spell
augroup END

相关内容