Vimをちゃんと使い始めて半年経った

この記事は「フィヨルドブートキャンプ Part 2 Advent Calendar 2023」21日目の記事です。 昨日はumizaruさんの「チェリー本の輪読会を終えて」でした。

adventar.org

Part1はこちら

adventar.org

はじめに

ここ半年ほど、家でコードを書くときはVimやNeovimをメインのエディタとして使っています。 Vim(Neovim)を本格的に使うようになって良かったことや逆に困ったことなどを書いていきたいと思います。

※以降はNeovimを含めて「Vim」と表記します。

Vimを使うようになったきっかけ

これまではVSCodeをメインのエディタとして数年使ってきて、Vimに関しては時々設定ファイルを修正するときなどに少し触る程度でした。VSCodeを使っていて特段困ることはなかったし、エディタを変えようとは思っていませんでした。 ところが、今年5月のRubyKaigiでVimキーバインドに絡めたネタがいくつか話されていた際、開場では笑いが起きているのに自分はあまりピンと来ていないということがありました。会場で一緒に笑えなかったのは少し悲しかったので、来年のRubyKaigiでVimネタが話されることがあったら今度は笑えるようになりたい、という変な動機でVimを使い始めることにしました。

ストレスなく使えるためにやったこと

意識せず使えるキーを増やす

Vimを使い始めるにあたってVimに関する記事やYoutubeの動画をいくつか見て、よく使うキーを調べました。10~20ほどのキーを覚えればひとまずストレスなく使えそうだということが分かったのですが、いきなり全て覚えて使おうとすると挫折しそうだったので、まずはカーソル移動のh j k lを意識せず使えるまでしばらく使ってみることにしました。カーソル移動に慣れてきたら「次はoO(新規行の挿入)を使ってみよう」という感じで数個ずつ意識せずに使えるキーを増やしていったところ、1~2ヵ月程でさほどストレスなくVimを使えるようになりました。

自分で少しずつカスタマイズする

Vimを本格的に使う場合は、独自キーマップの定義やプラグインを導入してカスタマイズしていくことになると思います。Vimを使い始めてから数週間は、vimrcを編集してキーマップやカラースキームを変更したり、vim-plugを使ってプラグインを一つずつ導入していきました。振り返ってみると、少しずつカスタマイズしていったことが結果的には良かったと思っています。当たり前ですが自分が変更したところしか変わらないので、「どこを編集したらどこが変わるのか」が分かりやすく、エラーが発生した際も原因を特定しやすくなります。 中には1つ入れるだけでIDEライクに使えるようになる、プラグインや設定がパッケージされたものもあります。これ自体は素晴らしいものですし、私自身も現在はAstroNvimというパッケージを使っています。ただ、個人的には最初から「全部のせ」なパッケージを使っていたら導入前からの変更点が多く、エラー発生時の原因特定も難しいため途中で挫折していたような気がします。

Vimを使って良かったこと・微妙だったこと

Vimに対する抵抗が無くなった

何かしら設定ファイルを変更するときなど、どうしてもVimを使わなければいけない場面があります。そんな時にこれまでは「VimじゃなくてVSCode使いたいなー」となっていたのですが、今はそこまで何とも思わずに使うことができるようになりました。

興味のある分野が増えた

Vimを使うようになって、Vimプラグインプラグインマネージャーについて興味を持つようになり、プラグイン関連の記事を読むようになりました。LSPについてもVimを触りだしてから初めて使うようになって仕組みを調べたりもしたので、技術への興味の幅が広がったと思います。

素のVimは使いづらい

プラグインやvimrcによってカスタマイズできるのがVimの良さだと思うのですが、自分が使いやすいように設定を変更しすぎると、たまに素のVimを使ったときにめちゃくちゃ使いづらいです。デフォルトのキーマップももっと覚えないといけないなと思います。キーマップの変更もデフォルトから離れすぎないようにした方が良いのかもと思ったりします。

日本語で文章を書くのはしんどい

コードを書く際は全く問題ないのですが、Markdown等で日本語をバリバリ書くときは全角と半角の切り替えが何度も発生するので結構しんどいです。色々やりようはあると思うんですが、今のところ日本語で文章を書くときはVSCodeMarkdownエディタを使っています。

おわりに

Vimネタで笑えるようになりたいという当初の目的は最初の1~2ヵ月くらいでほぼ達成できたと思うんですが、結果的にVimキーバインドが便利で使い続けています。今後また別のエディタを使うことになっても、Vimキーバインドは積極的に使っていきたいなと思っています。