[英]Remove command with matching braces
我正在使用(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}.
根據我的經驗,這樣的事情在編輯過程中經常出現,你可能會搜索\\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
的重復宏
:%s,\\textcolor{green}{\([^}]\+\)},\1,g
根據您更新的問題更新:
:%s,\\textcolor{green},\r-HUUHAA-&,g
:g/\\textcolor{green}/normal 0f\df}lvi{xhP$xx
:%s/\n-HUUHAA-//
快速解釋它的工作原理:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.