Como exportar regras de destaque de sintaxe do vim para o formato vimrc

1

Quando analiso arquivos de log em vim , geralmente, cria regras de realce de sintaxe ad-hoc para melhor orientação. Por exemplo

:syntax match myerror match /NullPointerException/
:highlight myerror ctermbg=red

Até aí tudo bem. Mas às vezes eu crio regras bastante complexas durante uma longa sessão de edição e quero salvar todas as regras ad-hoc criadas para que eu possa reutilizá-las. Eu posso imprimi-los:

:syntax
myerror        xxx match /NullPointerException/
:highlight
myerror        xxx ctermbg=4

Mas essa saída contém não apenas regras ad-hoc e não pode ser simplesmente copiada para .vimrc ou para um novo arquivo de sintaxe devido ao formato diferente. O :makevimrc não salva regras de realce de sintaxe.

Alguma ideia de como exportar regras de coloração ad-hoc?

    
por Zaboj Campula 13.04.2017 / 13:25

1 resposta

1

Até onde sei, não existe mecanismo nativo do Vim para fazer isso. Eu acho que é assumido que, se você for desenvolver um conjunto de regras de realce de sintaxe, você o fará em um script Vim desde o início.

Eu criei um script Vim simples que irá anexar todos os comandos de sintaxe e destaque do: -histórico de comando em um arquivo nomeado:

function! GetSyntaxHistory()
    let l:lines=[]
    for l:i in range(1,histnr(':'))
        let l:line = histget(':', l:i)
        if l:line =~ '^\s*\(syn\|syntax\|hi\|highlight\)\s\+'
            let l:lines += [l:line]
        endif
    endfor
    return l:lines
endfunction

function! WriteSyntax(file)
    let l:lines = GetSyntaxHistory()
    call writefile(l:lines, a:file, 'a')
endfunction

command! -nargs=1 -complete=file ExportSyn call WriteSyntax(<f-args>)
    
por 17.04.2017 / 01:28