当我分析日志文件时,vim
我经常创建临时的语法高亮规则以便更好地定位。例如
:syntax match myerror match /NullPointerException/
:highlight myerror ctermbg=red
到目前为止一切顺利。但有时我在长时间的编辑过程中创建了相当复杂的规则,并且我想保存所有创建的临时规则,以便可以重复使用它们。我可以打印它们:
:syntax
myerror xxx match /NullPointerException/
:highlight
myerror xxx ctermbg=4
但此输出不仅包含临时规则,而且.vimrc
由于格式不同,无法简单地复制到或复制到新的语法文件。:makevimrc
根本不保存语法高亮规则。
知道如何导出临时着色规则吗?
答案1
据我所知,没有原生的 Vim 机制可以做到这一点。我认为,如果您要开发语法高亮规则集,那么您从一开始就会在 Vim 脚本中完成它。
我编写了一个简单的 Vim 脚本,它将把 :-命令历史记录中的所有语法和突出显示命令附加到一个命名文件中:
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>)