【问题标题】:Why isn't this Vim syntax command in after/ftplugin/yaml.vim working?为什么 after/ftplugin/yaml.vim 中的这个 Vim 语法命令不起作用?
【发布时间】:2013-02-19 20:02:26
【问题描述】:

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

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

我也试过这个:

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

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

【问题讨论】:

    标签: vim


    【解决方案1】:

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

    【讨论】:

    • 我想把html语法改成php,所以我创建了~/.vim/after/syntax/html.vim,并把setlocal syntax=php放进去,但是不行。我该怎么做。
    • @Sam 将文件类型检测从 HTML 重新定义为 PHP。如果您不知道如何操作,请阅读此处提出单独问题的帮助。
    • @IngoKarkat 我知道重新定义文件类型,我认为可以单独修改语法,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 2011-09-15
    • 2020-05-29
    相关资源
    最近更新 更多