Vimの置き換えの中で置換する

あなたは交換の中でどのように交換しますか?

私はカーソルの下の現在の単語を置き換えることができることを知っていますが、出力として使用する前に置換を実行したいと思います。

例えば:

  • clbutticフィルタを通過して単語を置き換えた文書を持つあなたが知っているのは、脱Institutionalization(ヒント:米国のConsbreastution)など、悪化の影響を受けています。ファイルには、適切に置き換えられたいくつかの単語も含まれています。
  • ドキュメント内のWooloomoolooの o0
    に変更する(その単語のみ)

実際の世界の例(私のVimの歴史から)は、Latexの文書に載っていて、実行中です

%s/\begin{table}[h]/\begin{table}[H]/c

マイナーな変更を得るために文字列を複製しています。

ベストアンサー

oを0に置き換えるのは簡単です:

:s/o/0/g

おそらく、あなたはそれを(視覚的な)選択に適用する方法を知りたいでしょうか?

:s/%Vo/0/g

Edit Likely what you want (see comments)

:%s/<zs[Wolm]+>ze/=substitute(submatch(0), 'o', '0', 'g')/g

これは何ですか?

  • [Wolm]+ matches sequences consisting of just
    W,o,l,m
  • <[Wolm]+> matches (independent)
    words of the same (so, Wooloomooloo, or mooW,
    Wlomo would all match, but not amool
    etc).
  • zs marks the begin of the match for
    replace, ze the end
  • =substitute(submatch(0), 'o', '0', 'g') replaces
    the match (between zs and ze) but
    subsituting 0 for o

あなたはこのパターンから始めることができます

  • [Wolm] + を実際のターゲットに置き換えます
  • 一致を減らすために zs ... ze の外側にオプションのコンテキストを追加する
  • 大文字と小文字を区別しない一致を有効にするためにパターンの先頭に c を追加する

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です