はじめに
株式会社OMJテクノソリューションズ Advent Calendar 2023 10日目の記事です。
こんにちは、かわしまです。
エンジニア一年目で、日頃はSESとして働いております。
今回は閉じ方が分からないことで有名(?)なVimの派生であるNeovimについて書いていきたいと思います!
なぜNeovim?
みなさんエディタは何を使っていらっしゃいますか?私はVS Codeも使いますが、基本的にはNeovimを使用しています。
ITの勉強を始めた頃はVimを使っており、今年に入ってNeovimに乗り換えました。
まだエンジニアとしては未熟な私ですが、Neovimの良さを少しでもお話できたらと思います。
布教はしていきたいですが、強要するものではないのでご安心ください。
Vim vs Neovim
本題に入る前に、そもそもVimとNeovimは何が違うのかをご紹介します。
VimはViというエディタの派生として開発され、1991年に公開されました。現在ではLinux系の標準エディタとして普及しています。
Neovimは、そんなVimから派生して生まれたエディタです。Vimの開発コミュニティの中で、先進的な技術を取り入れていくかどうかで意見が別れた結果、先進的な考えを持っていた人たちがVimをフォークして開発したのがNeovimだそうです。そんな背景が有り、現在もNeovimの機能拡張のための開発は現在も進んでおり、プラグインの開発も活発です。また、操作方法も基本的にVimやNeovimも変わらないので、これから触ってみたいという方はNeovimから始めるのが良いかと思います。
操作方法
これがNeovim(以降特に言及がなければNeovimをVimと表記します)一番の特徴かと思います。h, j, k, lでのカーソル操作が可能です。一応矢印キーで操作することも可能です。しかし、Vimを使うのであればhjklでの操作になれることをおすすめします。何と言ってもホームポジションを崩すことなくカーソルを移動すことが可能なのです。これだけではなく、基本的にVimの操作はホームポジションを崩さず操作することを考えてキーが配置されています。
また、Vimにはモーション、オペレータ、テキストオブジェクトといった概念があり、これらを組み合わせると効率的に編集を行うことができます。
モーション
カーソルの移動キーのことです。hjklもモーションに含まれます。次のようなモーションがあります。
オペレータ
編集機能(削除やコピー)のキーのことです。よく聞くのはx(カーソル下の文字削除)やy(ヤンク:コピーのこと)でしょうか。
テキストオブジェクト
ルールに基づいたテキストのまとまりのことです。カッコの中の文字全体やクウォートを含めて全体といったテキストを選択することができます。
オペレータのdとテキストオブジェクトのi)を組み合わせると、()の中の文字を一度に消すことが可能になります。
また、VS Codeの拡張機能にVimライクなキーバインドにするものがあるので、この操作方法で快適に操作したいと思った方はそちらを導入してみてはいかがでしょうか。
カスタマイズ性
何と言ってもここがVimの売りかなと思います。プラグインが充実していて、自分の好きなようにカスタマイズすることが可能です。最初は質素な画面ですが、少しずつプラグインを設定していくことでリッチな画面になっていきます。ファイルツリーを表示させるプラグインも有り、IDEのようにカスタマイズすることもできます。
だったらVS Codeでいいじゃないかという声もあると思いますが、おっしゃるとおりです。一から設定するとかなり時間がかかるので、正直めんどくさいと思います。私はちまちま設定してでも、自分好みのエディタにするのが向いていたので現在も使っています。今はIDE化するために様々なプラグインをまとめたようなプラグインがあるので興味がある方はそちらの導入から初めていただくのが良いかと思います。
最後に
最後まで読んでいただき、ありがとうございました。
今回はNeovimの良さを語るだけになってしまいましたが、今後導入しているプラグインなども共有していければと思います。
それではよいVimライフを!!