我正在使用(mac)vim和tex-suite,并希望有一个正则表达式命令(或任何其他方式)来执行以下操作:
更改
\ textcolor {green} {some random text}
到
一些随机文字
应该在我的tex文件中出现\textcolor{green}{}
的所有内容......
有什么想法吗?
编辑:我需要它来识别匹配的大括号。这是一个例子:
\textcolor{green}{
with $v_\text{F}\sim10^6$m.s$^{-1}$ the massless Dirac fermions
velocity in pristine graphene}.
答案 0 :(得分:5)
根据我的经验,这样的事情在编辑过程中经常会出现,您可能已经突出显示了\textcolor{green}{
。
在这种情况下,:global
通常是我的首选武器:
:g//norm d%diBvaBp
diBvaBp:diB(删除内部块),vaB(选择块),p(放置) 功能 子>
如果您安装了surround.vim(推荐它!),您只需执行dsB
(删除周围的{})即可删除这对括号
:g//norm d%dsB
当然,您可以将其合并为
:g/\\textcolor{green}{/norm d%dsB
我刚刚注意到当目标模式没有从一行的开始处开始时的潜在问题。解决这个问题的最简单方法是
:g//norm nNd%diBvaBp
更复杂的方式(可能效率较低)将使用宏:
/\\textcolor{green}{
gg
qqd%diBvaBpnq
后跟100@q
之类的内容重复宏
答案 1 :(得分:1)
:%s,\\textcolor{green}{\([^}]\+\)},\1,g
根据您更新的问题更新:
:%s,\\textcolor{green},\r-HUUHAA-&,g
:g/\\textcolor{green}/normal 0f\df}lvi{xhP$xx
:%s/\n-HUUHAA-//
快速解释其工作原理: