Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:Underline(La)TeX文件中\Underline{}的内容_Vim_Latex_Vim Plugin_Tex - Fatal编程技术网

Vim:Underline(La)TeX文件中\Underline{}的内容

Vim:Underline(La)TeX文件中\Underline{}的内容,vim,latex,vim-plugin,tex,Vim,Latex,Vim Plugin,Tex,当我编辑(La)TeX文件时,Vim(使用默认的配色方案)对\textbf{}的内容使用粗体字体,反转\textit{}的内容的背景色,等等 我还想在\underline{}的内容下面加下划线 我提出了一个相当粗糙的解决方案,它在大多数情况下都有效,但是当\underline{}包含一个右大括号}时就会中断: highlight underline term=underline cterm=underline gui=underline match underline /\\underline{

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

我还想在
\underline{}
的内容下面加下划线

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

highlight underline term=underline cterm=underline gui=underline
match underline /\\underline{\zs.\{-}\ze}/
(下划线突出显示定义是必需的,因为下划线会更改文本的颜色。)

我怎样才能更优雅地完成这个任务?

我已经看过了
/usr/share/vim/vim74/syntax/tex.vim
,但我似乎无法调整类似
syn region texBoldStyle matchgroup=texTypeStyle start=“\\textbf\s*{end=“}”隐藏端点包含=@texBoldGroup
的内容以满足我的需要…

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

:echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
它将告诉您该符号使用哪个高亮显示组。获得该信息后,您可以尝试将您的
突出显示
行添加到:

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

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

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

或者,确实可以将其正确地添加到
syntax/tex.vim
:添加
syn cluster texundergroups
(并将其添加到所有适当的现有集群的
contains=
下),添加一个
syn region texUnderlineStyle
,最后添加一个
hi texUnderlineStyle

,顺便说一句,我不完全确定这是否在堆栈溢出的主题中被考虑,但与超级用户上的2386个、Unix和Linux上的626个和TeX-LaTeX上的145个相比,标记了13527个问题[vim]。