2

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

我有一个专有语言的源代码文件。我想用 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
4

2 回答 2

5

这可能是正确的语言吗?

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

于 2011-06-17T13:48:31.010 回答
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()
于 2011-06-17T15:28:31.960 回答