今日から始めるNeoVim (実録編)

はじめに

前回は、NeoVimの環境構築に挑戦しました。
今回は、Vim初心者の私が実際に使ってみて感じた「率直な感想」や、思わず頭を抱えた「困りごと」を記録していきたいと思います。
前回の環境構築編は"こちら"から確認ください!


ベテランの皆さんにとっては「自分も昔はここで詰まったな」と懐かしく感じたり、あるいは「そんな解決策があるのか!」と新たな発見があったりするかもしれません。

それでは、私のVim奮闘記、始めていきましょう!

第1章  文字が打てませんけど……?(モードの洗礼)

私: 「PHPの開始タグ Vim:  (...)
私: 「あれ?、もう1回 (<連打)」
Vim: (...)

1. 「待ち」状態の罠

普通のテキストエディタなら、キーを叩けば文字が出ます。
しかし、Vimでは命令(コマンド)を待っているノーマルモードになっていました。

Vim初心者が最初に味わう洗礼を受けました。

2. insertモードとの出会い

じゃあ、どうやって文字を打つんだと調査すると、iキーを押してinsert (挿入)モードに切り替えなければならないというルールを知りました。
普段、キーを押せば文字が出るという当たり前の世界に痛感しました。

3. 保存にも苦戦

PHPのコードを書き終え、いよいよ保存の時。
長年の習慣で無意識に Cmd + S(あるいは Ctrl + S)を叩き出していました。
すると、画面には保存どころか「s」が連打されています。

これも、調査してみるとinsertモードを解除して、コマンドラインモードに入る必要があるようです。

1. Escキーで「ノーマルモード」に戻る
2. : (コロン)で「コマンドラインモード」を呼び出す

保存にも、多くの種類がありました

:w

書き込み、Vimは開いたまま こまめに進捗を残したい時に利用
:wq 書き込んで、終了 ターミナルに戻る 書き終えて、PHPを実行したいときなど
:q 保存せず、終了 一度リセットしたいときなど

 

第2章 移動・編集の基本

1.移動の基本 hjkl

ここが1番理解できなかった。

普通のエディタは矢印で操作するが、Vimでは「h」「j」「k」「l」で移動する。

・h:左
・j:下
・k:上
・l:右

最初は操作に慣れることができず、矢印キーを使ってしまったり、「wasd」の直感性の優れさに感動していたが、
徐々に使ってみると、ホームポジションから崩さない設計になっていることになっていることに気づき、hjklである理由も徐々にわかってきました。

2. もっと効率的に移動するために

使ってみるうちに、徐々に最初の疑問は減ってきましたが、
代わりに新しく1個の疑問を思いついてきました。

「これ、hjkl連打しないといけないの?・・・」

100行下に移動のために、jを100連打するわけにもいかないので、もっと効率的な移動方法の調査を始めました。

下記は基本的な操作です。もっと効率的な方法があると思います。

・単語ごとの移動

w 次の単語の先頭へ
b 前の単語の先頭へ
e 単語の末尾へ

 

・先頭・末尾の移動

0 行の先頭
$ 行の末尾
gg ファイルの先頭
G ファイルの末尾
対応する括弧に移動

 

・大きく移動

Ctrl + d

画面半分下に移動
Ctrl + u 画面半分上に移動

 

・hjklの複数回移動

数字 + hjkl 数字分 移動

3. おすすめのプラグイン

この章では、入れてみてよかったプラグインを紹介していきます。

telescope nvim  

検索に特化したプラグインです。  
下記のようなものをあいまい検索が可能です。
  
・ファイル検索    
・文字列検索    
・最近開いたファイル 
・プロジェクト

 

VSCodeでは検索の手段として使ってましたが、NeoVimでは移動の手段で使用するため、
ファイルを探すという行為を消すことができるのが良いと思いました。

https://github.com/nvim-telescope/telescope.nvim

Comment.nvim

gccを打つだけで、そのファイルの拡張子に対応したコメントが自動で挿入されます。

gc + モーションで複数行コメントや、段落ブロックの一括コメントアウト、検索+コメントアウトなど複雑な操作も可能です。

https://github.com/numtostr/comment.nvim

trouble.nvim

エラー・警告を一覧で見れます。
その箇所へのジャンプも可能です。

https://github.com/folke/trouble.nvim

4. まとめ

■ NeoVimが良かった場面

NeoVimにもはっきりとした強みがありました。
起動が速い、動作が軽いキーボードだけで完結できる

特に感じたのは、 ちょっとした修正や確認が圧倒的に速い

設定ファイルをサッと開いたり数行だけ修正するログを軽く見る
こういう「軽い作業」に関しては、かなり快適でした。

 

■ VS Codeの方が良かった場面

複雑な開発になるほど、いつも利用しているVSCodeの強さを感ました。
拡張機能が豊富で、すぐに環境が作れる
GUIで直感的に操作できる
AIや画像系など、新しい機能への対応が速い

特に、画面共有などするシーンでは、VSCodeのほうが主流のため
見る人が理解しやすいメリットがあったと思う
 

■ 実際の使い分け
使っているうちに、自然とこんな感じに落ち着いた。
VSCode => 複雑な開発、マウスキーボード、モニターなど環境が整っている環境
NeoVim => 軽微な改修、外出先など

 

■ 使ってみて思ったこと

最初は「どっちがいいのか」で考えていたけど、
実際にはそういう話ではなかった。 それぞれに得意な場面がある。

大谷翔平のように全てをこなすのが理想ではあるが
バッターはバッター、ピッチャーはピッチャーのように、それぞれ得意な役割に集中させた方が、結果的に効率がいい。
だからこそ、強みを活かして使い分けていきたい。

  • このエントリーをはてなブックマークに追加

AUTHOR

岩崎 隆一

岩崎 隆一 エンジニア

福岡県出身です。
前々職ではSESとして保守運用作業を中心に、前職ではWebエンジニアとして開発をやってました。
趣味はゲーム、映画、読書、スポーツ(見る専)、観光、etc…たくさんあります。
何かしら共通の趣味があると思うので、その時は楽しくお話ししたいです。
まだまだ若輩者ですが、焦らず着実にエンジニアとしてステップアップできるために頑張ってまいります。

こんな記事も書いています