viエディタでのテキストの修正 - exコマンドで文字を置換して修正する -

トップ > 簡単な文書の作成 > テキストを修正する >
文字を置換して修正(exコマンド)

 
 
 
-
-
-
-
 
 
 
 

exコマンドで文字 "dogs" を 文字 "dog" に置換する

この記事でも、"dogs" を "dog" に訂正します。 今回は、exコマンドを使って置換します

"dogs" を "dog" に置換

任意の移動コマンドを使って、1行目に文字カーソルを移動します。 1行目であれば、行末でも行頭でもその他の位置でも構いません

文字カーソルを dogs の先頭に移動
文字カーソルを dogs の先頭に移動

上図のように文字カーソルを1行目に移動します

文字列を置換するには、substitute コマンド(exコマンド)を使います

  
substitute コマンド(exコマンド)は省略して s と記述することができます。
  
g オプションとc オプションを同時に指定することもできます。

では、キーボードから :s を入力してください。

:s
:sを入力
:sを入力

上図のように :s と入力します。

続けて、置換内容を入力します。 具体的には、置換前の文字列、置換後の文字列、オプションです。 これらを /(スラッシュ) で区切って入力します

  
今回はオプションは指定しません。
  
同じ行に "dogs" が複数あれば g オプションが必要ですが、今回は "dogs" は1箇所だけですので不要です。

キーボードから /dogs/dog/ を入力してください。

/dogs/dog/
置換内容を入力
置換内容を入力

上図のように /dogs/dog/ と入力します。

この他に入力するものはありませんので、これで確定します。 キーボードから <Enter> を入力してください。

dogs が dog に置換される
dogs が dog に置換される

上図のように"dogs" が "dog" に置換されます

では、再び "dogs" に戻しましょう。 キーボードから u を入力してください。

u
取り消し
取り消し

上図のように"dog" が "dogs" に戻ります

ページの先頭へ
 

範囲指定について

ここで、範囲指定について説明しておきます。

exコマンドでは、範囲を指定することができる命令が多くあります。 範囲を指定することで、その範囲の行のみがコマンドの実施対象となります

exコマンドの前に、


 <開始行>, <終了行>

と入力することで、範囲を指定することができます。

例えば、


1,3

と指定すると、1行目から3行目のみが対象となります。

なお、開始行・終了行ともに、以下の特殊表記が使えます。

範囲指定で使える特殊表記 説明
.
(ピリオド)
現在の行(文字カーソルがある行)
. + <数字> 現在の行から<数字>行下の行
. - <数字> 現在の行から<数字>行上の行
$
(ドル記号)
最後の行

また、効率良く作業できるよう、以下のような省略した範囲指定も行えます。

省略表記 説明
1 , $
(数字の1) (カンマ) (ドル記号)

↓省略表記

%
(パーセント記号)
先頭行から最終行を表します。
つまり全ての行を意味します。
ページの先頭へ
 

まとめ

substitute コマンド(exコマンド)で、文字列置換が行われます。

また、exコマンドでは、コマンド入力前に<範囲指定>を入力しておくことで処理対象とする行の範囲を指定することができます。

コマンド 説明
:<範囲指定>s/<置換前>/<置換後>/<オプション> 文字列を置換する

・<置換前>が<置換後>に置き換えられる。

・<範囲指定>を省略すると現在の行のみが対象となる。

・<オプション>には g と c がある。

・g オプションを指定すると行内の全ての一致が置換される。

・g オプションを省略すると行内の最初の一致のみが置換される。

・c オプションを指定すると置換するかどうかを1箇所ずつ対話形式で決定できる。
ページの先頭へ
 
 
-
-
-
-