删除匹配大括号的命令

Nig*_*igu 4 vim macvim latex-suite

我正在使用(mac)vim与tex-suite,并希望有一个正则表达式命令(或任何其他方式)来执行以下操作:

更改

\ textcolor {green} {some random text}

一些随机文字

这应该\textcolor{green}{}在我的tex文件中出现的所有内容...

任何的想法?

编辑:我需要它来识别匹配的大括号.这是一个例子:

\textcolor{green}{
     with $v_\text{F}\sim10^6$m.s$^{-1}$ the massless Dirac fermions 
     velocity in pristine graphene}.
Run Code Online (Sandbox Code Playgroud)

seh*_*ehe 5

根据我的经验,这样的事情最常在编辑过程中出现,您可能\textcolor{green}{已经突出显示了搜索.

在这种情况下,:global通常是我的首选武器:

:g//norm d%diBvaBp
Run Code Online (Sandbox Code Playgroud)

diBvaBp:diB(删除内部块),vaB(选择块),p(放置)

如果您安装了surround.vim(推荐它!),您可以删除这对括号dsB(删除周围{})

:g//norm d%dsB
Run Code Online (Sandbox Code Playgroud)

当然,你可以把它组合起来

:g/\\textcolor{green}{/norm d%dsB
Run Code Online (Sandbox Code Playgroud)

我刚刚注意到当目标模式没有从一行的开始处开始时的潜在问题.解决这个问题的最简单方法是

:g//norm nNd%diBvaBp
Run Code Online (Sandbox Code Playgroud)

更复杂的方式(可能效率较低)将使用宏:

/\\textcolor{green}{
gg
qqd%diBvaBpnq
Run Code Online (Sandbox Code Playgroud)

接着是100@q重复宏的事情