为什么在/ ftplugin/yaml.vim之后没有这个Vim语法命令?

Sea*_*sey 3 vim

我有以下几行 after/ftplugin/yaml.vim

syn match yamlBlockMappingKey /^\s*\zs.*\ze\s*:\%(\s\|$\)/
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

execute 'syn match yamlBlockMappingKey /^\s*\zs.*\ze\s*:\%(\s\|$\)/'
Run Code Online (Sandbox Code Playgroud)

这样做的目的是使vim正确地突出显示包含空格的键,根据此stackoverflow问题.问题是当我打开一个新的YAML文件时,该命令似乎不起作用.我知道这after/ftplugin/yaml.vim是在采购,因为我echom在那里放了一个命令,它出现了messages.此外,如果我只是将该行并将其粘贴到命令提示符并执行它,它就可以工作.谁知道怎么了?

Ing*_*kat 5

ftplugin脚本来源之前语法脚本,所以默认YAML语法清除您的附加定义.将您的扩展程序放入after/syntax/yaml.vim; 毕竟,您正在扩展语法,而不是文件类型设置.