Vim 语法不正确匹配
Vim syntax not matching properly
我有一个快速的 vim 问题。在给定类型的语法文件中,我有:
if exists("b:current_syntax")
finish
endif
syntax keyword AssemblyInstruction ADD SUB MUL DIV
syntax keyword AssemblyInstruction LDR STR GET PUT
syntax match AssemblyComment /\v;.*$/
syntax match AssemblyRegister /\v[rR]\d+/
highlight def link AssemblyInstruction Function
highlight def link AssemblyComment Comment
highlight def link AssemblyRegister Type
let b:current_syntax="asm"
当我 set syntax=asm
它 "correctly" 突出显示 ADD SUB MUL 和 DIV (尽管它似乎是对预处理器而不是函数使用突出显示)并且它得到正确的注释。但是,当涉及到 LDR STR GET PUT 时,它根本不会突出显示它们。寄存器也不突出显示。
我的语法文件有什么问题? (它位于 .vim/syntax 但我也尝试将其复制到 .vim/after/syntax 无济于事)
我认为
if exists("b:current_syntax")
finish
endif
是说如果 varianle b:current_syntax
存在,则完成,什么也不做。所以如果这个变量已经被 let 了,它什么都不做。 asm
的原始 vim 语法文件可能是从其他地方读取的。尝试 :verbose syntax
查看已使用语法设置的内容,并尝试 :set rtp?
搜索运行时文件的目录列表。
如果您想 "overwrite" 将文件放入 .vim/after/syntax
的语法,您可以删除 if 语句。
我有一个快速的 vim 问题。在给定类型的语法文件中,我有:
if exists("b:current_syntax")
finish
endif
syntax keyword AssemblyInstruction ADD SUB MUL DIV
syntax keyword AssemblyInstruction LDR STR GET PUT
syntax match AssemblyComment /\v;.*$/
syntax match AssemblyRegister /\v[rR]\d+/
highlight def link AssemblyInstruction Function
highlight def link AssemblyComment Comment
highlight def link AssemblyRegister Type
let b:current_syntax="asm"
当我 set syntax=asm
它 "correctly" 突出显示 ADD SUB MUL 和 DIV (尽管它似乎是对预处理器而不是函数使用突出显示)并且它得到正确的注释。但是,当涉及到 LDR STR GET PUT 时,它根本不会突出显示它们。寄存器也不突出显示。
我的语法文件有什么问题? (它位于 .vim/syntax 但我也尝试将其复制到 .vim/after/syntax 无济于事)
我认为
if exists("b:current_syntax")
finish
endif
是说如果 varianle b:current_syntax
存在,则完成,什么也不做。所以如果这个变量已经被 let 了,它什么都不做。 asm
的原始 vim 语法文件可能是从其他地方读取的。尝试 :verbose syntax
查看已使用语法设置的内容,并尝试 :set rtp?
搜索运行时文件的目录列表。
如果您想 "overwrite" 将文件放入 .vim/after/syntax
的语法,您可以删除 if 语句。