第 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>にコピーを保存し、元のファイルの編集を継続
現在の(すでに原形をとどめていないかもしれない)ファイルをコピーとして保存し、 次の章へ進んでください。