Vim语法高亮

时间:2011-06-17 12:58:55

标签: vim vim-syntax-highlighting

好吧,这可能是一个愚蠢的问题,但是......

我有一个专有语言的源代码文件。我想用VIM编辑所述文件,而不是他们糟糕的编辑器。我想要语言的基本语法高亮,但我不想花费大量时间来编写自己的语法文件。

因此,VIM有一个基本的源突出显示模块吗?它不需要是完美的,我只是希望它涵盖简单的事情。目前,我唯一的选择是没有语法高亮,选择随机语言,或自己滚动。

编辑:下面的源代码示例

{
    function letter do
        gposition 0, 0
        if gender = "M" do
            if language = "SPA" OR state = "PR" do
                %male spanish letter
                gposition .26, .75
                pdfimage "MALE SPANISH.pdf", 1, .93

                setcolor truewhite
                setfillmode 1
                %whitebox
                gposition 5.25, 1.25
                rectangle 2.5, .5

2 个答案:

答案 0 :(得分:5)

这可能是正确的语言吗?

http://www.iml.ece.mcgill.ca/~stephan/node/17

答案 1 :(得分:3)

滚动你自己的语法高亮显示很难,而且需要几分钟。

例如,我编写了一个使用Python的DSL(称为Konira),但它突出了我的自定义DSL语句失败了。这就是“额外”突出显示的外观:

function! KoniraSyntax() abort
    let b:current_syntax = 'konira'
    syn match KoniraIt                   '\v^\s+it\s+'
    syn match KoniraSkipIf               '\v^\s+skip\s+if'
    syn match KoniraDescribe             '\v^describe\s+'
    syn match KoniraRaises               '\v^\s+raises\s+'
    syn match KoniraBeforeAll            '\v^\s+before\s+all'
    syn match KoniraBeforeEach           '\v^\s+before\s+each'
    syn match KoniraAfterEach            '\v^\s+after\s+each'
    syn match KoniraAfterAll             '\v^\s+after\s+all'

    hi def link KoniraSkipIf             Statement
    hi def link KoniraIt                 Statement
    hi def link KoniraDescribe           Statement
    hi def link KoniraRaises             Identifier
    hi def link KoniraBeforeAll          Statement
    hi def link KoniraBeforeEach         Statement
    hi def link KoniraAfterAll           Statement
    hi def link KoniraAfterEach          Statement
endfunction

正如您在上面所看到的,我设置了当前语法,然后通过正则表达式进行匹配 我想要的陈述,并且我在那场比赛中应用了我需要的突出显示类型。

当您知道(或者如果能够检测到)您正在编辑此类源文件时,您可以将其称为常规函数:

call KoniraSyntax()