TT Lab
はじめる
学ぶ 学習パス コース

vimとtmux

vimの基本編集

TT Labで続きを見る

目標

vimの基本編集(挿入・削除・コピー・貼り付け)を手に馴染ませ、編集コマンドをファイルとして保存して再現する方法まで学びます。

なぜ重要なのか

vimのキーは、暗記すべき一覧ではなく、{횟수}{동작}{범위}(韓国語の語は、順に「回数」「動作」「範囲」を意味します)という文法です。d(削除) + 3w(単語3つ) = d3wのように組み合わせれば、習っていないコマンドも作って使えます。そして、vimでは削除は切り取りです。消した内容がレジスターに残るため、ddp(下の行と入れ替え)のような慣用句が成り立ちます。最後の2つのステップで編集コマンド自体をファイルとして提出する理由は、結果だけを合わせることと、手順を再現できることがまったく別だからです。

ステップ

  1. /root/.vimrcを作成して、次の4つを有効にしてください: 行番号の表示、タブの代わりにスペース、タブ幅4、インデント幅4。
  2. /root/vim/poem.txtを作成して、ちょうど次の8行を入れてください。4行目と7行目は空行です。 alpha / bravo / charlie / (空行) / delta / echo / (空行) / foxtrot
  3. /root/vim/notes.txtを作成して、次の3行を入れてください。 i = insert before cursor / a = append after cursor / o = open line below
  4. poem.txtからbravoとcharlieの2行だけを削除した結果を、/root/vim/cut.txtとして保存してください。元のファイルはそのままにしてください。
  5. poem.txtのdeltaのすぐ下にdeltaを1行追加した9行を、/root/vim/dup.txtとして保存してください。
  6. poem.txtのalphaとbravoの順序だけを入れ替えた8行を、/root/vim/swap.txtとして保存してください。
  7. 空行をすべて削除するexコマンド1行を/root/vim/blank.exに保存し、そのコマンドを適用した6行の結果を/root/vim/nogap.txtとして保存してください。
  8. 空行を削除して、すべての文字を大文字に変換するexコマンドを/root/vim/build.exに保存し、その結果を/root/vim/final.txtとして保存してください。

参考

設定ファイルを作って確認する

/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つのコマンドを順に入れればよいです。