【问题标题】:Fold a pre-defined syntax region in vim在 vim 中折叠预定义的语法区域
【发布时间】:2014-09-09 14:25:02
【问题描述】:

我正在使用这个php syntax file,我想折叠 phpdoc cmets。

这个语法文件already creates phpdoc cmets 的一个同步区域。相关代码是

syn region phpDocComment   start="/\*\*" end="\*/" keepend contains=phpCommentTitle,phpDocTags,phpTodo,@Spell

现在我的问题是如何为已在我的~/.vimrc 文件中创建的同步区域启用折叠功能?

我在~/.vimrc 中添加了以下行,但它不起作用。

syn region phpDocComment   start="/\*\*" end="\*/" keepend contains=phpCommentTitle,phpDocTags,phpTodo,@Spell fold

【问题讨论】:

  • 你为什么不在那个语法文件中这样做呢?
  • 我不想直接在该文件中进行更改的原因是它不是由我维护的,我使用 Vundle 将它作为一个捆绑包包含在内。如果我直接更改它并且如果作者发布更新,那么我的更改将会丢失。
  • 不,您可以分叉插件并合并进一步的“官方”更改,或者更好地向其作者发送拉取请求。
  • 我不想只用这个更改来维护我自己的分叉,但是发送拉取请求是个好主意。让我与作者核实一下他是否有兴趣接收拉取请求。谢谢你的建议。

标签: vim syntax-highlighting folding


【解决方案1】:

查看:scriptnames 输出。你的 ~/.vimrc 在一开始就被执行,而语法脚本只在 Vim 启动、加载缓冲区、文件类型检测等之后加载。

如果您需要扩充语法脚本并且不想修改脚本本身(除非您是作者,否则不建议这样做 - 您必须在每次脚本更新后重新应用更改),执行此操作的正确位置是通过 after 目录。将您的:syntax 命令放入~/.vim/after/syntax/php.vim

由于这只扩展了原始语法规则,您可能必须先删除原始语法规则(也在后文件中):

syn clear phpDocComment

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 2014-06-02
    • 2010-10-22
    • 2013-02-11
    相关资源
    最近更新 更多