4

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

syn match yamlBlockMappingKey /^\s*\zs.*\ze\s*:\%(\s\|$\)/

我也试过这个:

execute 'syn match yamlBlockMappingKey /^\s*\zs.*\ze\s*:\%(\s\|$\)/'

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

4

1 回答 1

6

这些ftplugin脚本的来源语法脚本之前,因此默认的 YAML 语法会清除您的附加定义。将您的扩展名after/syntax/yaml.vim改为;毕竟,您是在扩展语法,而不是文件类型设置。

于 2013-02-20T07:45:20.683 回答