4

tex-suiteで(mac)vimを使用していて、次のことを行うために単一の正規表現コマンド(またはその他の方法)が必要です。

変化する

\ textcolor{green}{ランダムなテキスト}

の中へ

ランダムなテキスト

これは\textcolor{green}{}、私のtexファイルで発生するすべての場合に実行する必要があります...

何か案が?

編集:一致する中括弧を認識するために必要です。ここに例があります:

\textcolor{green}{
     with $v_\text{F}\sim10^6$m.s$^{-1}$ the massless Dirac fermions 
     velocity in pristine graphene}.
4

2 に答える 2

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マクロを繰り返すようなものが続きます

于 2011-12-15T10:14:18.057 に答える
1
 :%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} 行を、「特別な」マーカー -HUUHAA- を付けて、独自の行に配置します。
  2. 視覚的な選択 vi{ を使用して、{} の間のすべてを選択し、外側に貼り付けて、空になった {} を削除します。
  3. マーカーを含む残りのものを削除します。
于 2011-12-15T09:57:23.570 に答える