【问题标题】:Vim: Underline content of \underline{} in (La)TeX filesVim:(La)TeX 文件中 \underline{} 的下划线内容
【发布时间】:2014-05-16 00:45:31
【问题描述】:

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

我希望它也能在\underline{}的内容下划线。

我想出了一个相当老套的解决方案,它在大多数情况下都有效,但是当 \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 之类的东西适应我的需求……

【问题讨论】:

  • 顺便说一下,我不完全确定这是否被认为是 Stack Overflow 的主题,但 SO 有 13527 个问题标记为 [vim ],相比之下 Super User 为 2386,Unix & Linux 为 626,TeX — LaTeX 为 145。

标签: vim latex vim-plugin tex


【解决方案1】:

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

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

它会告诉您哪个高亮组用于该符号。获得该信息后,您可以尝试将 highlight 行添加到:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 2015-01-28
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 2016-06-18
      相关资源
      最近更新 更多