散らかったコードを片づける
ここからは使うキーを絞りません。できあがりの形だけを示すので、どのキーをどう組み合わせるかは自分で決めてください。クリアすると打鍵数が出るので、最短手数を狙って解き直すこともできます。
最短手数は目的ではない
打鍵数を出しているのは、遠回りに気づくためです。l を10回押して辿り着いたときと f で1回で飛んだときの差が数字で出れば、次に同じ場面が来たときに手が変わります。実際の編集では、思いついた手で正しく直せることのほうが大事です。
繰り返しの選び方
同じ直しが何度も続くときの道具は3つあります。少ない回数なら .、条件で選べるなら :g や :%s、複雑な手順ならマクロ(qa … q と @a)です。3行なら .、300行なら :g と考えると迷いません。
片づけの順番
散らかったコードを直すときは、消す・揃える・足す の順で進めると手数が減ります。先に不要な行を消しておけば、そのあとの整形や追記の対象が減るためです。逆に、整形してから消すと整形した手間がそのまま無駄になります。
この順番はマクロや :g を使うときにも効きます。対象が少ないほど、失敗したときに戻す範囲も小さくなります。
形を揃えてから繰り返す
繰り返しの道具はどれも「同じ操作で済むこと」を前提にしています。行ごとに直し方が違う状態のまま . やマクロを使おうとすると、途中で結果が食い違って直しに戻ることになります。
そこで、まず例外的な行だけを手で直して残りを同じ形に揃え、そのうえで繰り返す、という進め方をします。手で直す1行を惜しまないほうが、結果的に早く終わることが多くあります。
失敗しても戻せる前提で進める
範囲の広い操作は、実行する前に結果を完全に読み切れないことがあります。u で戻せるので、迷ったら試して、違ったら戻す、という進め方で構いません。
ただし :g やマクロを何回も重ねたあとでは、どこまで戻せばよいか分からなくなります。大きな操作の前に一度保存しておくか、区切りのよいところで :earlier 1f(前回保存した状態まで戻る)を使えるようにしておくと安心です。
打鍵数は次に活かすための数字
クリアしたときに出る打鍵数は、順位を競うためのものではありません。同じ課題を l の連打で解いたときと f で飛んで解いたときの差が数字で見えると、次に同じ場面が来たときに手が変わります。
最短手数に届かなくても、直せていれば十分です。実際の編集で価値があるのは、短く打つことではなく、意図したとおりに直せることのほうです。
このレッスンで扱うキー
| キー | 動き |
|---|---|
| dd | 1行削除 |
| . | 直前の変更を繰り返す |
| A | 行末から入力 |
| Ctrl-v | 矩形選択を始める |
| I | 選んだ左端に一括で入力 |