-4

vimエディターで文字列をスラッシュに置き換えようとしています

例: foo to abc/def/foo。助言がありますか?

4

2 に答える 2

1

質問のタイトルと内容が一致していません。

:help pattern:help :substitute少し圧倒されますが、正規表現がVimの中心にあるため、非常に便利です。

Vimの正規表現101は、より簡潔なリソースです。

とにかく、次のサンプルテキストが与えられます:

bar baz foo baz bar

あなたの目標はさまざまな方法で達成することができます。それらのいくつかを次に示します。

:s/foo/\/abc\/def\/foo
:s/foo/\/abc\/def\/&
:s+foo+/abc/def/&

いくつかの注意:

  • 交換部品で&は、「一致したテキスト」を表します。一致する場合はfoo&ですfoo。もちろん、ここでは&overを使用してもあまりメリットはありませfooんが、より複雑なパターンになるまで待ってください…</ p>

  • スラッシュは検索部分と置換部分を区切るために使用されるため、置換を機能させるには、両方の部分の実際のスラッシュをエスケープする必要があります。

  • スラッシュの代わりに他の多くの記号を使用して、検索部分と置換部分を区切ることができます。これは、あまりにも多くのスラッシュをエスケープする必要があることがわかっている場合に非常に便利です。

于 2012-11-13T07:41:50.173 に答える
0

vim で文字列置換を行うには、最初にビジュアル モードまたは挿入モードを終了する必要があります。次に「:」と入力して、vim コマンドを実行します。vim の置換コマンドは '%s' で始まります。持っているものをすべてまとめる

:%s/thingyouhave/thingyouwant/

上記の例では、ファイル名の「/」をバックスラッシュ「\」でエスケープする必要があります。

:%s/foo/abc\/def\/foo/

もう 1 つの便利な方法は、式の最後に 'gc' を置くことです。これにより、各変更を実行する前に確認を求めるプロンプトが表示されます。これは、式のインスタンスの一部を変更したい場合や、実行していることが正しいかどうかわからない場合に役立ちます。

:%s/foo/abc\/def\/foo/gc
于 2012-11-13T08:41:49.653 に答える