首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim语法高亮

Vim语法高亮
EN

Stack Overflow用户
提问于 2011-06-17 12:58:55
回答 2查看 933关注 0票数 2

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

我有一个用专有语言编写的源代码文件。我想用VIM来编辑上述文件,而不是他们的拙劣的编辑器。我想要基本的语法高亮化语言,但我不想花很多时间滚动我自己的语法文件。

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

编辑:下面的源代码示例

代码语言:javascript
复制
{
    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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-17 13:48:31

这是正确的语言吗?

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

票数 5
EN

Stack Overflow用户

发布于 2011-06-17 15:28:31

滚动自己的语法高亮显示一点也不困难,这需要几分钟。

例如,我编写了一个大部分使用Python的DSL (称为Konira),但它未能突出显示我的自定义DSL语句。这就是“额外”突出显示的样子:

代码语言:javascript
复制
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

正如您在上面看到的,我设置了当前的语法,然后通过正则表达式匹配我想要的语句,并在匹配中应用我需要的突出显示类型。

当您知道(或者如果您能够检测到)您正在编辑这样一个源文件时,您可以调用它作为一个常规函数:

代码语言:javascript
复制
call KoniraSyntax()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6386085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档