如何在vim中为缩进块指定一个特殊的语法荧光笔?

时间:2012-08-23 18:36:59

标签: 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

更复杂:

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

2 个答案:

答案 0 :(得分:0)

我相信你希望它利用Vim的语法区域(:help syn-region)。但是区域将分隔符作为参数。

你有一个明确定义的开始,但不是定义的结束,也许你可以通过在这里建立一些约定来解决问题,比如“最后两个空的新行”

有类似的答案可能会为您提供有关如何实施解决方案的提示(包括文档),例如:Embedded syntax highligting in Vim

同样有趣且类似的方法是这个Vimtip:http://vim.wikia.com/wiki/Different_syntax_highlighting_within_regions_of_a_file

答案 1 :(得分:0)

您必须编写自己的语法文件,并为每个条目定义语法区域。在该区域内,您可以语法 - 包含ext定义的相应语言。阅读:help :syn-include的所有详细信息。

如果这听起来太复杂,请查看我的SyntaxRange插件。它基于alfredodeza提到的Vimtip。有了它,您可以快速为一系列行分配语法,例如: :11,42SyntaxInclude perl