今度こそ挫折しないVim

みなさんこんにちは。

本記事では、Vimアレルギーだった私がなるべく楽な道を通りながらVimを習得した方法をご紹介します。

もしあなたが矢印キーを使って移動している。iコマンドと:wqだけ覚えている。という状態であればスタート地点の私なので是非読んでいただきたいです。

数日でVimがすらすら使えるなんて魔法のような方法ではないですが、ゲーム感覚で少しずつ成長を実感できると思います。私の場合は1ヶ月程度で実務で使ってみるかと思えるレベル、3ヶ月もすればVimで以前より高速で編集できるようになりました。

## ステップ1.移動をマスターする
Vim初心者がまず慣れないといけないのは移動です。
一般的な移動操作は矢印キーやWASDのようにキーが上下左右に配置されていますが、Vimはh[左]j[下]k[上]l[右]の横一列配置です。

矢印キーに慣れた人にとっては本当に頭が混乱しますが、数を打てば慣れます。
そのために、次の迷路脱出ゲームで遊びましょう。

左上のキャラクター（ネコ？）を右下のゴールまでできるだけ速く移動させます。

![7f24c39e88f9-20240918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762653/22792d69-d33e-8d7a-090a-825a1ebd84f0.png)

https://vimate.jp/lessons/vimmer-01

はじめはまともに動けなくてもどかしい思いをすると思いますが、諦めず続ければ必ず早くなります！
（私ははじめは1分以上かかっていたのが、今では30秒を切れるようになりました）

ある程度慣れたら次のステップに進みましょう。

## ステップ2.基本操作をマスターする
次は単語単位での移動や、インサートモードへの入り方など絶対に覚えるべき基本操作を練習します。
vim-heroというサイトがゲーム感覚で何度も操作を練習できるのでとってもおすすめです。

![252a0549be12-20240918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762653/7bb7d3ef-f040-4fea-9e62-5674f5c85bf3.png)

https://www.vim-hero.com/lessons/intro-to-modes

基本操作を駆使して虫（敵キャラ）を倒しつつ文字入力するゲームが中盤にあります。

![660d7fefbad0-20240918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762653/6a4972df-d9ff-906f-8f3e-e7dc00b19feb.png)

なかなか難しいのですが、これがクリアできたら基本操作はマスターしたも同然です。
自信を持って次のステップに進みましょう。

## ステップ3.慣れたエディタでVimを実戦導入する
ここまで来たあなたは既にVimらしい操作で文字を入力できるはずです。
まだまだ不安があると思いますが、業務でVimを使ってみましょう。

注意点としては、慣れないエディタでVimを始めないことです。
エディタ自体の操作がわからないと余計なところで労力を使ってVimの習得に集中できません。
VSCodeやIntelliJにはVimプラグインがあるので、慣れているエディタにプラグインを入れましょう。

私はIntelliJのIdeaVimというプラグインを使っていますが、マウスでも不自由なくカーソル操作できたりVimモードのON/OFFを簡単に切り替えられるので初心者におすすめです。

## おすすめ動画
Vimの基本操作を覚える過程でVimの入力コマンドの意味を学んだり、便利なコマンドを知るのに動画はおすすめです。視覚的に分かりやすく、上手い人の操作を見ることでモチベーションアップにもなります。

### Vim入門（MIRAITO CHANNEL）
Vimの考え方がわかりやすくまとまっています。Vimのコマンドには意味があり、その意味を知ることでスラスラコマンドが打てるようになります。

<iframe width="560" height="315" src="https://www.youtube.com/embed/UP0oV_1Q0Q8?si=HJ0mSB-uX7c_R2Kb" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

### 実践的Vim入門（kurenaif）
実戦で使える技が沢山まとまっています。入力スピードが早く、Vimを使いこなせば以前よりも速くコーディングできることが実感できると思います。

<iframe width="560" height="315" src="https://www.youtube.com/embed/eX-GiS5gmYM?si=LFyxquP-pst3hNkU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## おすすめ書籍
さらにVim力を磨きたいあなたにおすすめの書籍を紹介します。

### 実践Vim 思考のスピードで編集しよう!
名著です。分厚いですが実戦的な知識が多く得られます。
本格的にやるぞと思ったときに是非。

https://www.amazon.co.jp/%E5%AE%9F%E8%B7%B5Vim-%E6%80%9D%E8%80%83%E3%81%AE%E3%82%B9%E3%83%94%E3%83%BC%E3%83%89%E3%81%A7%E7%B7%A8%E9%9B%86%E3%81%97%E3%82%88%E3%81%86-Drew-Neil/dp/4048916599

### 入門 生産性を最大化するVimエディタのテクニック: 効率的なコーディングやプログラミングのためのテキスト編集術
KindleUnlimited会員であれば無料で読めます。
「実践Vim 思考のスピードで編集しよう!」が分厚くてちょっと・・という人におすすめです。
レジスタやプラグイン、Vimスクリプトなど広く浅くVimの世界を広げてくれます。

https://www.amazon.co.jp/%E5%85%A5%E9%96%80-%E7%94%9F%E7%94%A3%E6%80%A7%E3%82%92%E6%9C%80%E5%A4%A7%E5%8C%96%E3%81%99%E3%82%8BVim%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AA%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E7%B7%A8%E9%9B%86%E8%A1%93-doitu-ebook/dp/B0CRZFWT9Y

## おまけ.VimGolf
Vimに魅了されたあなたに。VimGolfです。
編集前と編集後のテキストが与えられて、その編集を行うために入力したキーの少なさを競います。

上位のスコアを取るためには相当なVimの知識が必要になりますが、上位を狙わなければ基本操作だけでいけます。
回答をSubmitすることで、他の人の回答も見ることができるので「そんなやり方もあるのか」と勉強になります。

もっと力が欲しい。と思ったらやってみましょう。

https://www.vimgolf.com/

## おわりに
私が実践したVimを攻略するための学習法を紹介してみましたが、いかがだったでしょうか？
挫折しないためにはここで紹介した学習法も重要ですが、「Vimをマスターしたい」というモチベーションを強く維持することが最重要です。

私の場合はYoutubeでVimで高速コーディングしている人を見てカッコいい！と思ったのがVimを始めたきっかけでありモチベーションでした。
Vimができるエンジニアはなんかかっこいいし、Vimが上達してくるとコーディングが楽しくなります。

この記事がVim習得の足がかりになれば幸いです。