1

Когда я анализирую файлы журналов в vim я часто создаю специальные правила подсветки синтаксиса для лучшей ориентации. Например

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

Все идет нормально. Но иногда я создаю довольно сложные правила во время длительного сеанса редактирования и хочу сохранить все созданные специальные правила, чтобы их можно было использовать повторно. Я могу напечатать их:

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

Но этот вывод содержит не только специальные правила и не может быть просто скопирован в .vimrc или в новый файл синтаксиса из-за другого формата. :makevimrc вообще не сохраняет правила подсветки синтаксиса.

Есть идеи, как экспортировать специальные правила раскраски?

1 ответ1

1

Насколько мне известно, нет никакого собственного механизма Vim для этого. Я думаю, что предполагается, что если вы собираетесь разрабатывать набор правил подсветки синтаксиса, вы будете делать это в скрипте Vim с самого начала.

Я собрал простой сценарий Vim, который добавит все команды синтаксиса и выделения из истории:-command в именованный файл:

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>)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .