読書感想文 「実践Vim」- Vimに挫折し続けた自分をスタートラインに立たせてくれた本
本書のおすすめポイント
- 「Vim の上級ユーザーのように考える知識を教えてくれる」(本書序文より)
- 単一のコマンドの羅列ではなく、組み合わせて効果を発揮するコマンドや、組み合わせパターンの背後にある Vim の原則を学べます
本書に何を期待してはいけないか
- 本書のすべて覚えてもまだまだ Vim マスターとは言えません。マスタークラスの Vim ユーザーは本書に書いてないテクニックもたくさん知っています。
- サッと読んで理解するには向いていません。手を動かして練習するための本です。
Vim に挫折し続けた私の Vim 歴の紹介
私と同じように Vim をマスターしたいと思いつつ何度も挫折した人にこそ本書は役に立つと思うので、ここで私の挫折歴を紹介します。
過去に:
— リチャード 伊真岡 (@RichardImaokaJP) May 6, 2021
Vim本をじっくり読み込む -> 挫折
2週間ほど手を動かして練習 -> 挫折 x 4回くらい
2ヶ月ほど手を動かして練習 -> 挫折
「実践Vim」本に出会って3ヶ月練習 -> 波動が見え始める
ってやってきたので、自分でもよくVimを諦めなかったなと思いますww
私が Vim に興味を持ったのは、Vim の達人かつ 1 流プログラマである人々に出会い「Vim を使いこなせたらカッコいい!!」と子供のようなあこがれを持ったからでした。
Vim 入門の定番といえば vimtutor です。私の知り合いの Vim ユーザーも勧めてくれました。vimtutor は初心者向けの対話形式チュートリアルで、vimtutor
というコマンドを入力すれば立ち上がります。
下記のように「25-30 分で終わる」と書いてある vimtutor ですが、私は2週間かけても vimtutor が終わらず、結局挫折してしまいました。
たしかに vimtutor の指示に従えば書いてあるとおりに動作します。しかし私はその背後にある原則や、複雑なキー入力を要求される理由は全然理解できませんでした。理解が伴わないため 1 日 Vim を触らないでいると毎回ほぼ全て忘れてしまっていたのです。
何度かの Vim 挫折を経た後に出会い、Vim マスターへのスタートラインに私を立たせてくれたのが本書「実践 Vim」です。
本書のおすすめポイントを詳細に紹介
世間に出回っている Vim の解説は個別コマンドを羅列して紹介するものが多く、コマンドを組み合わて使うパターンを数多く教えてくれるものや、それらの組み合わせの背後にある Vim の原則を体系立てて教えてくれるものは少ないです。私が探した限りでは少なくとも Web 上の解説ではそういったものが見つけられませんでした。
Vim はコマンドの組み合わせによって高速にテキスト編集できるように作られているので、単一コマンドばかりを覚えてもいつまでも使いこなせるようにはなりません。それを踏まえた上で、Vim に熟達するには以下の 2 点が重要です。
- コマンドの組み合わせパターンを何通りも覚える
- 覚えたら、頭で考えるより先に手が先に動いてコマンドを入力できるまで練習する
本書は TIP という形でこのコマンド組み合わせのパターンを教えてくれます。TIP は全部で 100 ありますが、関連の強い TIP は並べて紹介され、1 つの TIP が他のいくつもの TIP と関連するものもあるので、バラバラに 100 のパターンを覚えるほど大変では有りません。
その中から特に私が有用だと思うものをいくつか紹介しましょう。
- TIP4: 実行して、繰り返して、元に戻す
この TIP では最も重要なコマンドの 1 つ、ドット「.」で直前の操作を繰り返す方法について説明しており、このドットコマンドを利用した組み合わせパターンは本書で繰り返し登場します。
- TIP12: 統合して統治せよ(オペレータ+モーション=アクション)
TIP12 はコマンドの中でもオペレータと呼ばれる一群について、典型的な組み合わせパターンとその背後の概念を紹介しています。テキストの消去、置換、範囲指定、あるいはビジュアルモードなど Vim の様々な機能に関わる部分なので、オペレータの使い方を習得すれば様々な場面で効率的なテキスト編集が可能になります。
- TIP48: 単語単位での移動、TIP49: 文字を検索、TIP50: 検索して移動
Vim では基本的にマウスを使わずにキーボード入力のみでテキスト内を移動します。まずは移動距離の小さい方から hjkl による文字単位の移動を覚え、次に w や b キーによる単語単位の移動、f キーと;の繰り返しによる現在行内の検索、さらに/によるファイル内全体の検索と、だんだんと移動できる距離を伸ばしていきましょう。特に検索コマンドを使いこなせるようになると V、hjkl キーや wb キーを連打するのに比べて、長距離移動がかなり早くなります。
ゆっくり日数をかけ手を動かしながら練習しましょう
ここからは私がおすすめする本書の読み進め方です。本記事は過去に Vim 習得に挫折した人を念頭に書いているので、あせって「◯ ヶ月で Vim をマスターする!」と短い期間での目標をたてるより、途中で停滞してもいいように長い時間をかけて練習する方がよいと思います。
本書は手を動かしながら学ぶタイプの書籍で、当然手を動かしながら読むことはただ目だけで内容を追っていくよりも時間がかかるので、その意味でも時間をかけるほうがよいでしょう。本書は下のように、コマンド入力パターンを表すキーストロークと、編集対象のバッファの内容を並べて書いた例が多数出てくるので、どうやって手を動かして練習すればいいか迷うことは少ないです。
どれくらい練習すればいいかということについてですが、
- 覚えたら、頭で考えるより先に手が先に動いてコマンドを入力できるまで練習する
と先ほど述べました。長い時間をかけていると以前学んだ部分を忘れてしまうことが多いと思います。忘れることを見越した上で、何度か同じ部分を繰り返し練習するつもりでいると、忘れたことにショックをうけなくてすみます。本書の各章は独立して学べるようになっているものの、くり返し出てくるコマンド入力パターンはあるので、読み終えた範囲が広いほど記憶の引っ掛かりが増えて覚えやすくなっていきます。あきらめずにゆっくり覚え、覚えたら今度は手が先に動くまで繰り返しましょう。
まとめ
Vim のコマンド入力パターンをいくつか覚えていると「これとこれとこれのコマンドを組み合わせれば、最少キーストロークで目的の編集が実現できる!」というのがわかってきます。まだまだ私はある程度時間をかけてコマンドの組み合わせを考えてから入力を開始している状態ですが、いずれ考えるより先に手が動いて入力が完了するようになったらと想像するとワクワクします。本書の表紙に書いてある「思考のスピードで編集しよう!」という速度も、本書で Vim 力を培えばいつか可能になりそうです。