Vimに1週間で慣れるのか

はじめに

こんにちは、竹田です。

今回は開発の都合上どうしてもVimを使って編集しないといけない場合に、その作業に対して億劫にならないために、Vimに一週間で慣れることができるのか挑戦しました。

過去何回か触ったことがあるのですが全く直感的な操作ができずにトラウマを植え付けられてしまいましたので、その払拭も同時にできればいいと思います。

Vimの操作の詳細ではなく使ってみた時の体験や感想を中心に書こうと思います。

Vimとは

Vimとはご存知の通りテキストエディタです。Linuxに標準で搭載されているのでサーバー内でのファイル編集を行う時に使用することができます。本番環境などはどうしてもVimを使う必要があったりするのでWebエンジニアは特に使えた方が困らないと思います。

Vimにとっつきにくい原因

Vimの特徴に「モード」があります。私が一番Vimにとっつきにくいと感じる理由がこのモードです。Vimを使えるためにはどういうモードがあるのか、そのモードは何ができるのかを把握しておく必要があります。私は過去これが原因で苦手になりました。恐らく私以外も同じ理由でVimが苦手な方が多いと思っています。

今回の目標

1週間のうちにVimを触りつつ、必要な時に必要な操作をググって覚えるというようなやり方でできるだけ負担にならないように、そしてVimへの抵抗が生まれないように徐々に慣れたいと思います。

1日目:移動と保存を覚える

早速初日ですが、この日はバグの修正の必要があったのでVimで変更を加えることにしました。

この時使ったモードはインサートモードだけでした。キーボードの矢印キーで移動して、修正箇所はback spaceで削除し、最後に「:wq」で保存して終了しました。

ついついマウスで操作してしまいそうになる癖が抜けなくて疲労感が強かったです。

2日目:コピペを覚える

行番号をVim上に表示できることを知り、「:set number」で行番号を表示することができました。

ノーマルモードでの1行の削除、「dd」  1行のコピー「yy」 ペースト「p」を覚えました。

この日はまだマウスで動かしてしまおうとする癖がまだ抜けませんでしたが、モードの移行とコピペができるようになったことで、当初考えていたよりは簡単なのではという感想になりました。

3日目:移動の仕方をさらに覚える

この日はノーマルモードでの移動が少し楽になる事を知りました。

ノーマルモードでファイルの先頭へ移動「gg」 ファイルの最後尾へ移動「G」あとは「hjkl」での移動を覚えました。

結構移動がめんどくさい記憶があったので「gg」と「G」コマンドを覚えたことで、目標達成に向けて大きく前進した気がしました。

4日目:移動の仕方をさらに×2覚える undoとredoを覚える

さらに移動方法が増えました。

ノーマルモードでの「ctrl+u」画面半分だけ上に移動 「crtl+d」画面の半分だけ下に移動。upとdownの頭文字なのでわかりやすいですね。

ついでに戻すコマンドも覚えました。戻す「u」。戻すコマンドを再度戻すredo「ctrl+r」

* redoコマンドは「r」の方がわかりやすくない?という感想を持ちました。→「文字を 1 つだけ置き換え」の機能に既に割り当てられているようです。

5日目:人生初ヴィジュアルモード

5日目はヴィジュアルモードで範囲選択をした後にコピー&ペーストする方法を覚えました。

「v」でビジュアルモードにした後カーソルを移動させると勝手に範囲指定になり、選択されている状態で「y」を押すと勝手にノーマルモードになり、その後「p」で張り付けることができます。

この日初めてビジュアルモードを使用しました。この範囲選択のコピー&ペーストはモードを超えた操作を行う必要があるため必須な操作にも拘らず難易度が高いと感じました。

6日目:検索を覚える

6日目は検索することを覚えました。この日まで検索の必要に駆られませんでしたので使用頻度が高そうな操作ですが後回しになっていました。

やり方としては例えば「ABC」という文字列を検索したい場合にはノーマルモードで「/ABC」と打ち込みエンターを押した後「n」を押すと次の検索位置、「N」を押すと前の検索位置に飛ぶことができます。ちなみに「:ABC」と検索するとテキストの最後から検索されます。

7日目:とくになし

最終日でしたがこの日は特に何か新しい操作の必要性を一旦感じなかったので特に覚えることはありませんでした。

結果

当初の目標であったVimになれるというのは8割程度達成できたかなと思います。メインで使うエディタにするのでなければこの1週間で私が使用した程度のことができれば、必要な時に必要な操作がある程度できるかなと思いました。10数個動作を覚えることができれば大体の作業はできそうです。

終わりに

今回無事過去のトラウマを払拭しつつVimにもある程度慣れることができました。しかもそこまで労力もかかりませんでした。今後の仕事に少しでもこの1週間の経験が活かせたらいいなと思います。