置換

置換は :substitute コマンドで行います。

置換コマンド (:substitute)

コマンド 省略形 説明 備考
:[range]substitute/{pattern}/{string}/[g][c][r][t][a][A][i][I][j][J] :s range 範囲の pattern を string に置換します。

実行例

:%s/\<WORD\>/ワード/gc

/{string}/ に後続するフラグ(オプション)

フラグ 説明 備考
g 行内で現れた一致パターンを全て置換します。
c 置換時に確認を行います。
r pattern として直前の検索パターンを使います
t 改行に置換した際に自動インデントを付加します。 uvw固有
a string の % 書式に従って自動採番を行います。(初期値から) uvw固有
A string の % 書式に従って自動採番を行います。(前回の値から) uvw固有
i 英大文字小文字を無視します。
I 英大文字小文字を区別します。
j 日本語あいまい検索を有効にします。 uvw固有
J 日本語あいまい検索を無効にします。 uvw固有

自動採番機能 (autonumber パラメータ、:s コマンド a A フラグ)

:substitute コマンドに a A フラグを追加し、 置換の際に自動採番が行えるようになっています。 採番する場合は {string} に % フォーマット指定子を記述しておく必要があります。

:'<,'>s/(\d\+)/(%02d)/ga

関連パラメータ

パラメータ 省略形 形式 説明 初期値 備考
autonumber=<初期値>,<ステップ> an 文字列 自動採番する際の <初期値> と <ステップ> を指定します。 1,1

関連コマンド

コマンド 省略形 説明 備考
:autonumber <初期値>,<ステップ> 文字列 自動採番する際の <初期値> と <ステップ> を指定します。

フォーマット指定子

整数値に関しては C 言語の printf() のフォーマット指定子を ある程度踏襲しています。 整数以外のフォーマットは特殊ですので注意してください。 以下に例も込みで可能なフォーマットを記載します。

フォーマット 説明 備考
%d 10 進整数値
%4d 10 進整数値(桁数あり、空白詰め)
%04d 整数値(桁数あり、ゼロ詰め)
%o 8 進整数値
%6o 8 進整数値(桁数あり、空白詰め)
%06o 8 進整数値(桁数あり、ゼロ詰め)
%x 16 進整数値
%8x 16 進整数値(桁数あり、空白詰め)
%08x 16 進整数値(桁数あり、ゼロ詰め)
%a 英小文字(a-z) (a が初期値 1 に相当します)
%A 英大文字(A-Z) (A が初期値 1 に相当します)
%m 丸数字(白丸)(1-50)
%M 丸数字(黒)(1-20)
%r ローマ数字(小文字)(ⅰ-ⅻ)
%R ローマ数字(大文字)(Ⅰ-Ⅻ)
%j 漢数字(一-十)
%J 漢数字(古)(壱-拾)

フォーマット的にかなり無茶な仕様だとは思っていますので 将来的に予告なく仕様が変更になる可能性があります…。

置換時オートインデント (:s コマンド t フラグ)

改行を入れるような置換を行った場合にインデントを維持するようになります。 ただ、それだけの機能です。

実行例

    line1line2
:%s/line1line2/line1^Mline2/t
    line1
    line2

日本語あいまい検索 (:s コマンド j J フラグ)

日本語あいまい検索のフラグ j を指定すると (英小文字大文字を無視するのではなく) {pattern} の検索で半角全角の差もある程度無視するようになります。

以下のような効果があります。

対象 効果 備考
英字 半角英字と全角英字を区別しません。(A と A を同一視します)
数字 半角数字と全角数字を区別しません。(1 と 1 を同一視します)
かな 半角カナとひらがな、カタカナを区別しません。(ア と ア と あ を同一視します)
記号 アスキー記号と全角記号を区別しません。($ と $ を同一視します)

戻る