当我编辑(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
的内容......
答案 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
。