みなさんこんにちは。
本記事では、Vimアレルギーだった私がなるべく楽な道を通りながらVimを習得した方法をご紹介します。
もしあなたが矢印キーを使って移動している。iコマンドと:wqだけ覚えている。という状態であればスタート地点の私なので是非読んでいただきたいです。
数日でVimがすらすら使えるなんて魔法のような方法ではないですが、ゲーム感覚で少しずつ成長を実感できると思います。私の場合は1ヶ月程度で実務で使ってみるかと思えるレベル、3ヶ月もすればVimで以前より高速で編集できるようになりました。
ステップ1.移動をマスターする
Vim初心者がまず慣れないといけないのは移動です。
一般的な移動操作は矢印キーやWASDのようにキーが上下左右に配置されていますが、Vimはh[左]j[下]k[上]l[右]の横一列配置です。
矢印キーに慣れた人にとっては本当に頭が混乱しますが、数を打てば慣れます。
そのために、次の迷路脱出ゲームで遊びましょう。
左上のキャラクター(ネコ?)を右下のゴールまでできるだけ速く移動させます。
はじめはまともに動けなくてもどかしい思いをすると思いますが、諦めず続ければ必ず早くなります!
(私ははじめは1分以上かかっていたのが、今では30秒を切れるようになりました)
ある程度慣れたら次のステップに進みましょう。
ステップ2.基本操作をマスターする
次は単語単位での移動や、インサートモードへの入り方など絶対に覚えるべき基本操作を練習します。
vim-heroというサイトがゲーム感覚で何度も操作を練習できるのでとってもおすすめです。
基本操作を駆使して虫(敵キャラ)を倒しつつ文字入力するゲームが中盤にあります。
なかなか難しいのですが、これがクリアできたら基本操作はマスターしたも同然です。
自信を持って次のステップに進みましょう。
ステップ3.慣れたエディタでVimを実戦導入する
ここまで来たあなたは既にVimらしい操作で文字を入力できるはずです。
まだまだ不安があると思いますが、業務でVimを使ってみましょう。
注意点としては、慣れないエディタでVimを始めないことです。
エディタ自体の操作がわからないと余計なところで労力を使ってVimの習得に集中できません。
VSCodeやIntelliJにはVimプラグインがあるので、慣れているエディタにプラグインを入れましょう。
私はIntelliJのIdeaVimというプラグインを使っていますが、マウスでも不自由なくカーソル操作できたりVimモードのON/OFFを簡単に切り替えられるので初心者におすすめです。
おすすめ動画
Vimの基本操作を覚える過程でVimの入力コマンドの意味を学んだり、便利なコマンドを知るのに動画はおすすめです。視覚的に分かりやすく、上手い人の操作を見ることでモチベーションアップにもなります。
Vim入門(MIRAITO CHANNEL)
Vimの考え方がわかりやすくまとまっています。Vimのコマンドには意味があり、その意味を知ることでスラスラコマンドが打てるようになります。
実践的Vim入門(kurenaif)
実戦で使える技が沢山まとまっています。入力スピードが早く、Vimを使いこなせば以前よりも速くコーディングできることが実感できると思います。
おすすめ書籍
さらにVim力を磨きたいあなたにおすすめの書籍を紹介します。
実践Vim 思考のスピードで編集しよう!
名著です。分厚いですが実戦的な知識が多く得られます。
本格的にやるぞと思ったときに是非。
入門 生産性を最大化するVimエディタのテクニック: 効率的なコーディングやプログラミングのためのテキスト編集術
KindleUnlimited会員であれば無料で読めます。
「実践Vim 思考のスピードで編集しよう!」が分厚くてちょっと・・という人におすすめです。
レジスタやプラグイン、Vimスクリプトなど広く浅くVimの世界を広げてくれます。
おまけ.VimGolf
Vimに魅了されたあなたに。VimGolfです。
編集前と編集後のテキストが与えられて、その編集を行うために入力したキーの少なさを競います。
上位のスコアを取るためには相当なVimの知識が必要になりますが、上位を狙わなければ基本操作だけでいけます。
回答をSubmitすることで、他の人の回答も見ることができるので「そんなやり方もあるのか」と勉強になります。
もっと力が欲しい。と思ったらやってみましょう。
おわりに
私が実践したVimを攻略するための学習法を紹介してみましたが、いかがだったでしょうか?
挫折しないためにはここで紹介した学習法も重要ですが、「Vimをマスターしたい」というモチベーションを強く維持することが最重要です。
私の場合はYoutubeでVimで高速コーディングしている人を見てカッコいい!と思ったのがVimを始めたきっかけでありモチベーションでした。
Vimができるエンジニアはなんかかっこいいし、Vimが上達してくるとコーディングが楽しくなります。
この記事がVim習得の足がかりになれば幸いです。