vimの基本編集
目標
vimの基本編集(挿入・削除・コピー・貼り付け)を手に馴染ませ、編集コマンドをファイルとして保存して再現する方法まで学びます。
なぜ重要なのか
vimのキーは、暗記すべき一覧ではなく、{횟수}{동작}{범위}(韓国語の語は、順に「回数」「動作」「範囲」を意味します)という文法です。d(削除) + 3w(単語3つ) = d3wのように組み合わせれば、習っていないコマンドも作って使えます。そして、vimでは削除は切り取りです。消した内容がレジスターに残るため、ddp(下の行と入れ替え)のような慣用句が成り立ちます。最後の2つのステップで編集コマンド自体をファイルとして提出する理由は、結果だけを合わせることと、手順を再現できることがまったく別だからです。
ステップ
/root/.vimrcを作成して、次の4つを有効にしてください: 行番号の表示、タブの代わりにスペース、タブ幅4、インデント幅4。/root/vim/poem.txtを作成して、ちょうど次の8行を入れてください。4行目と7行目は空行です。alpha/bravo/charlie/ (空行) /delta/echo/ (空行) /foxtrot/root/vim/notes.txtを作成して、次の3行を入れてください。i = insert before cursor/a = append after cursor/o = open line belowpoem.txtからbravoとcharlieの2行だけを削除した結果を、/root/vim/cut.txtとして保存してください。元のファイルはそのままにしてください。poem.txtのdeltaのすぐ下にdeltaを1行追加した9行を、/root/vim/dup.txtとして保存してください。poem.txtのalphaとbravoの順序だけを入れ替えた8行を、/root/vim/swap.txtとして保存してください。- 空行をすべて削除するexコマンド1行を
/root/vim/blank.exに保存し、そのコマンドを適用した6行の結果を/root/vim/nogap.txtとして保存してください。 - 空行を削除して、すべての文字を大文字に変換するexコマンドを
/root/vim/build.exに保存し、その結果を/root/vim/final.txtとして保存してください。
参考
.exファイルには編集コマンドだけを入れ、:wqのような保存・終了コマンドは入れないでください。採点ツールが自動で保存します。- 採点ツールは、
.exファイルを元のファイルのコピーにもう一度適用して、結果が同じかを確認します。つまり、結果ファイルとコマンドファイルが、互いに一致している必要があります。 - 置換でマッチした全体は
&で参照し、大文字への変換を指定するのは\Uです。 - よくあるミス1: ステップ4–6で
poem.txt自体を直してしまうと、後のステップがすべて崩れます。:w 새파일(プレースホルダーは新しいファイル名です)で、別名保存を使ってください。 - よくあるミス2: ステップ1で
.vimrcにタイプミスがあると、その行だけが静かに無視されます。vimを開いて:set expandtab?で、実際に適用されているかを確認してください。
設定ファイルを作って確認する
/root/.vimrcを作成して、次の4つを有効にしてください: 行番号の表示、タブの代わりにスペース、タブ幅4、インデント幅4。
ファイルに書くことと、vimが適用することは違います。vimの中で:set number?のように疑問符を付けると、現在の値を教えてくれます。
練習用のファイルを作る
/root/vim/poem.txtを作成して、ちょうど次の8行を入れてください。4行目と7行目は空行です。
alpha / bravo / charlie / (空行) / delta / echo / (空行) / foxtrot
空行も1行として数えます。4行目と7行目が空である必要があります。
挿入モードに入る練習
/root/vim/notes.txtを作成して、次の3行を入れてください。
i = insert before cursor / a = append after cursor / o = open line below
i、a、oは、それぞれカーソルの前・後ろ・下の行で入力を始めます。3行の内容と順序を正確に合わせてください。
行を削除する
poem.txtからbravoとcharlieの2行だけを削除した結果を、/root/vim/cut.txtとして保存してください。元のファイルはそのままにしてください。
ddは1行、2ddは2行です。元のファイルには触れず、結果を新しいファイルに保存してください。
行を複製する
poem.txtのdeltaのすぐ下にdeltaを1行追加した9行を、/root/vim/dup.txtとして保存してください。
yyでコピーして、pで貼り付けます。vimでは削除も切り取りであることを思い出してください。
2行を入れ替える
poem.txtのalphaとbravoの順序だけを入れ替えた8行を、/root/vim/swap.txtとして保存してください。
ddで消すとレジスターに残ります。そのあと、pをどこで押すかを考えてみてください。
空行の削除をコマンドで行う
空行をすべて削除するexコマンド1行を/root/vim/blank.exに保存し、そのコマンドを適用した6行の結果を/root/vim/nogap.txtとして保存してください。
:g/パターン/dは、パターンに一致する行を削除します。空行を表すパターンは、行頭と行末がくっついている形です。
複数の編集を1つのスクリプトにまとめる
空行を削除して、すべての文字を大文字に変換するexコマンドを/root/vim/build.exに保存し、その結果を/root/vim/final.txtとして保存してください。
置換で大文字に変換する指定と、マッチした全体を指す記号を組み合わせます。2つのコマンドを順に入れればよいです。