2012-08-23 23 views
1

爲了便於分組CouchDB的功能 我創建一種文件格式,基團一起使用YAML我如何在vim中爲特定語法熒光筆分配縮進塊?

它基本上包含在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 
+0

http://stackoverflow.com/questions/6864420/change-filetype-or-other-vim-settings-blockwise-in-a-file顯示特殊情況下的一個可能的起點 – Ronny

+0

您可以提供更多詳情,可能包括一些代碼作爲例子? – mMontu

回答

0

我相信,你想讓它使用Vim的語法區(:help syn-region)的東西。但是地區以分隔符作爲參數。

你有一個明確的開始,但沒有定義的結束,也許你可以通過在這裏建立一些約定,如「在結束時新空行2」

有可能會給你一個提示(包括文檔)類似的答案就如何實現解決方案,如:Embedded syntax highligting in Vim

同樣有趣的和類似的做法是這樣的Vimtip:http://vim.wikia.com/wiki/Different_syntax_highlighting_within_regions_of_a_file

0

你必須編寫自己的語法文件,併爲每個條目定義一個語法區域。在該區域內,您可以使用語法 - 包含您的ext定義的相應語言。在:help :syn-include閱讀所有的細節。

如果這聽起來太複雜了,請查看我的SyntaxRange插件。它基於alfredodeza提到的Vimtip。有了它,您可以快速地爲一系列行分配語法,例如:11,42SyntaxInclude perl