如何在vim中为缩进块分配特殊语法荧光灯?
为了方便对couchdb函数进行分组 我创建了一种文件格式,使用yaml将不同的内容分组在一起 它基本上包含如何在vim中为缩进块分配特殊语法荧光灯?,vim,syntax-highlighting,vim-syntax-highlighting,Vim,Syntax Highlighting,Vim Syntax Highlighting,为了方便对couchdb函数进行分组 我创建了一种文件格式,使用yaml将不同的内容分组在一起 它基本上包含name.ext:| 后跟适合.ext语言的预期代码块 为了进行更愉快的编辑,我希望vim为它们使用正确的语法高亮 编辑 根据要求提供一些代码示例 简单: map.coffee: | (doc) -> for item in doc.items: emit [doc.category, item], null return reduce: _count
name.ext:|
后跟适合.ext语言的预期代码块
为了进行更愉快的编辑,我希望vim为它们使用正确的语法高亮
编辑
根据要求提供一些代码示例
简单:
map.coffee: |
(doc) ->
for item in doc.items:
emit [doc.category, item], null
return
reduce: _count
更复杂的是:
map.coffee: |
(doc) ->
emit doc.category, {items: 1, val: doc.value}
return
reduce.coffee: |
(keys, values, rereduce) ->
ret = {items: 0, val: 0}
for v in values
ret.items += doc.items
ret.val += doc.val
return ret
我相信您希望它使用Vim的语法区域(
:help syn region
)。但是区域使用分隔符作为参数
你有一个明确的开始,但没有明确的结束,也许你可以在这里建立一些惯例,比如“结尾有两个空的新行”
有一些类似的答案可能会提示您(包括文档)如何实施解决方案,例如:
另一个有趣且类似的方法是Vimtip:您必须编写自己的语法文件,并为每个条目定义一个语法区域。在该区域内,您可以使用语法包含由
ext
定义的相应语言。阅读:help:syn include
上的所有详细信息
如果这听起来太复杂,请查看我的SyntaxRange插件。它基于Alfredeza提到的Vimtip。使用它,您可以快速为一系列行分配语法,例如,
:11,42SyntaxInclude perl
显示了特殊情况的可能起点。请提供更多详细信息,可能包括一些代码作为示例?