2

vimの置換には範囲パラメーターがあることがわかりました:

:[range]s/pattern/sring/[c]/[g]/[e]/[i]/[I]/[p]

しかし、視覚的な選択でのみ置換が行われるようにすると便利かどうか疑問に思います。

誰もがそれを行う方法を知っていますか?

4

2 に答える 2

4

はい、できます。

視覚的に選択した後、を押すと、が表示され:ます 。:'<,'>'<,'>[range]

次に、以下のように置き換えますが、これは行全体に影響することに注意してください

:'<,'>s/foo/bar/g

視覚的に選択された領域のみに変更fooする場合(つまり、文字単位またはブロック単位の選択)、アトムを使用する必要がありますbar \%V

:'<,'>s/\%Vfoo/bar/g

ビジュアルセレクションアーカイブ)での検索と置換の記事には、このトピックに関するさらに役立つ情報があります。

于 2012-08-24T08:13:08.773 に答える
1

スコープを視覚的なに制限するために、'<,'>範囲が機能します。ただし、文字単位またはブロック単位の選択では、これでは不十分です。正規表現を変更するか、vis.vimプラグインを使用する必要があります。そうしないと、選択範囲外(ただし行内)の文字も影響を受けます。

Vim Tips Wikiで完全なディスカッションを見つけてください:http://vim.wikia.com/wiki/Applying_substitutes_to_a_visual_block


:この回答は2012年のものであり\%Vアトムを使用して(4/2/2021)視覚的選択の内側(文字単位またはブロック単位)への変更を制限できるようになりました。ビジュアルセレクション(アーカイブ)での検索と置換の記事を参照してください。ただし、上記の記事も更新されています。

于 2012-08-24T08:19:23.227 に答える