Skip to content

第 3 章:ファイルの編集と保存 ​

文書を編集する ​

これまでにカーソルの操作、ファイルを開く方法、ファイルの切り替え、内容の検索を 学びました。これらはすべて Vim のノーマルモードで行う操作です。次は別のモードで ある挿入モードに入り、ファイルの編集方法を学びます。

挿入 ​

  • i 現在の文字の前から挿入
  • a 現在の文字の後ろから挿入
  • I 行頭から挿入
  • A 行末から挿入
  • o 下に新しい行を作って挿入
  • O 上に新しい行を作って挿入

注意:上記のコマンドを実行すると Vim は挿入モードに入ります。カーソルの表示が 変わり、入力した文字が文書へ直接挿入されます。Esc、Ctrl-[、または Ctrl-C を押すと挿入モードを終了します。

削除(Vim のクリップボードにも保存) ​

  • s 現在の文字を削除して INSERT モードへ移行
  • S 現在の行を削除して Vim のクリップボードへ保存し、INSERT モードへ移行 (cc と同じ)
  • x 現在の文字を削除(挿入モードの Delete に相当)
  • X 直前の文字を削除(挿入モードの Backspace に相当)
  • dd 現在の行を削除して Vim のクリップボードへ保存
  • d<X> 指定した範囲を削除して Vim のクリップボードへ保存
  • cc 現在の行を削除して Vim のクリップボードへ保存し、INSERT モードへ移行
  • c<X> 指定した範囲を削除して Vim のクリップボードへ保存し、挿入モードへ移行

Vim コマンドの文法 ​

Vim で最も役立つ規則です。多くの編集操作は [回数] + オペレータ + 移動範囲 として読めます。

  • オペレータは「何をするか」:d は削除、c は変更、y はコピー
  • 移動は「どこまでか」:w は次の単語、$ は行末、} は次の段落
  • 数値は回数:2dw は 2 単語を削除し、d2w も同じ動作

つまり dw は「次の単語まで削除」、c$ は「行末まで変更」、y} は「次の段落 までコピー」です。新しい移動を覚えるたび、削除、変更、コピーの方法も同時に増えます。

注意:オペレータを 2 回押すと行単位になります(dd、cc、yy)。c は削除後 に挿入モードへ入り、d はノーマルモードに残ります。

コピー ​

  • yy 現在の行を Vim のクリップボードへコピー
  • y<X> 指定した範囲を Vim のクリップボードへコピー

貼り付け ​

  • p 現在位置の後ろへ貼り付け
  • P 現在位置の前へ貼り付け

行の結合 ​

  • J 現在の行と次の行を結合

次のテキストでコピー、切り取り、貼り付けを試してください。

この行を削除
この行の下に貼り付ける
ABC を切り取り、XYZ の前に貼り付けて次の形にする
切り取った内容を ABC XYZ の前に貼り付ける。

通常の文章の行で dw、u、c$、数文字の入力、Esc、u を順に試します。 各操作の前に「オペレータ」と「範囲」を言葉にしてください。最後は u で練習時の 変更を元に戻します。

置換 ​

  • r<X> 現在の文字を X に置換
  • gu<X> 指定したテキストを小文字へ変換
  • gU<X> 指定したテキストを大文字へ変換
  • :%s/<search>/<replace>/g ファイル全体で各行のすべての一致を置換

:s はデフォルトで現在行の最初の一致だけを置換します。% は範囲をファイル全体 へ広げ、末尾の g は各行のすべての一致を対象にします。c(gc)を加えると 一致ごとに確認できます。

次のテキストの大文字と小文字を変換してください。

Change this line to UPPERCASE, THEN TO lowercase.

g~<X> という興味深いコマンドもあります。上のテキスト行にカーソルを移動して 0g~$ を実行し、何が起きるか確認してください。

元に戻す、やり直す ​

  • u 元に戻す
  • Ctrl-r やり直す

ファイルを保存する ​

  • :w 現在のファイルを保存
  • :wa すべてのファイルを保存
  • :wq または ZZ 保存して終了
  • :q! または ZQ 保存せず強制終了
  • :saveas <new filename> <new filename> という名前で保存
  • :w <new filename> <new filename> にコピーを保存し、元のファイルの編集を継続

現在の(すでに原形をとどめていないかもしれない)ファイルをコピーとして保存し、 次の章へ進んでください。