Vim:在(La)TeX文件中为\ underline {}的下划线加下划线

时间:2014-05-16 00:45:32

标签: vim latex vim-plugin tex

当我编辑(La)TeX文件时,Vim(使用默认colorscheme)对\textbf{}的内容使用粗体字体,反转\textit{}内容的背景颜色等

我希望它也强调\underline{}的内容。

我提出了一个相当hacky的解决方案,在大多数情况下有效,但在\underline{}包含右括号}时中断:

highlight underline term=underline cterm=underline gui=underline
match underline /\\underline{\zs.\{-}\ze}/

underline突出显示定义是必要的,因为Underlined会更改文本的颜色。)

我怎样才能更优雅地做到这一点?
我看过/usr/share/vim/vim74/syntax/tex.vim,但似乎无法根据我的需要调整类似syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" end="}" concealends contains=@texBoldGroup的内容......

2 个答案:

答案 0 :(得分:1)

将光标放在\underline{foo}上并输入该命令:

:echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')

它会告诉您该符号使用哪个突出显示组。获得该信息后,您可以尝试将highlight行添加到:

~/.vim/after/ftplugin/tex.vim

答案 1 :(得分:0)

如果\}中唯一的问题是\underline{},那么这是一个改进的正则表达式:

/\\underline{\zs\(.\([^\\]}\)\@<!\)\+\ze}/

或者,确实可以将其正确添加到syntax/tex.vim:添加syn cluster texUnderlineGroup(并在contains=下为所有适当的现有群集添加),添加{{1} },最后添加syn region texUnderlineStyle