簡體   English   中英

刪除匹配大括號的命令

[英]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-//

快速解釋它的工作原理:

  1. 將所有\\ textcolor {green}行放在他們自己的行上,使用'special'標記-HUUHAA-
  2. 使用視覺選擇vi {選擇{}之間的所有內容,將其粘貼到外部並刪除現在為空的{}。
  3. 刪除剩余的東西,包括標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM