なぜ今Neovimを使うのか:AI CLI時代のターミナル中心開発
なぜ今Neovimを使うのか
AIでコードを書くのが当たり前になってきた。しかも最近は、いろいろなAIモデルがCLIを提供していて、ターミナルを開いている時間が明らかに増えている。
すると次に気になってくるのが、VSCodeやIDEとの行き来だ。ちょっと確認して、ちょっと直して、またターミナルへ戻る。この往復が積み重なると、地味に集中力が削られる。
そこで僕は「ターミナル中心の作業」に寄せることにした。ターミナルに居座ったまま編集まで完結できるように、Neovimを使い始めた。
Neovimにしたら何が解決したか
Neovimに移行してまず大きかったのは、PCのメモリ消費に対するストレスが減ったことだった。
VSCodeやIDEは便利だけど、その分どうしても常駐プロセスや拡張機能が増えて、気づくとメモリを持っていかれる。開発中はブラウザ、Docker、ターミナル、監視ツールなども同時に動くので、「エディタが重い」というだけで全体のテンポが落ちる。そこで僕は、作業の中心をターミナルに寄せることで、余計なメモリを使わない形にしたかった。
ただし、移行は簡単ではなかった。
今までVSCodeを使っていた分、Neovimにはそれなりに学習コストがある。特に最初の壁は、Vimの操作に慣れていないことだった。カーソル移動、編集、検索、コピー、置換…全部が“別の流儀”なので、頭では分かっていても指がついてこない。最初は確実に遅くなるし、正直もどかしい。
それでも続けられたのは、学習の見返りが分かりやすかったからだ。ターミナルに居座ったまま、検索して、編集して、すぐ実行する。この往復が短くなるほど、AI CLIとの相性も良くなっていった。
デフォルトのNeovimのままだと旨味が薄い
Vim系の操作は、結局のところ触って慣れるしかない。知識としてコマンドを覚えても、指が動かないうちは作業が止まる。だから最初は「効率化」よりも「毎日触れる状態」を作ることを優先した。
ただ、Neovimをデフォルト設定のまま使うと、正直ターミナルに移行したメリットは薄い。
VSCodeで当たり前にできていた「ファイル検索」「曖昧検索」「定義ジャンプ」「補完」みたいな体験が足りなくて、むしろ不便に感じる場面が出てくる。
そこで僕は、Neovimにプラグインを入れて“現代の編集体験”に寄せた。結果として、VSCodeからの移行はかなり早まったと思う。最初から完璧を目指すのではなく、VSCodeで慣れていた導線をNeovim側に再現して、学習コストを分割したイメージだ。
そしてもうひとつ、これは完全に感情の話だけど、ターミナル中心で作業していると不思議と「やってる感」が出てくる。画面がシンプルな分、自分の操作がそのまま成果に繋がっていく感覚があって、気分が上がる。この“乗れる感じ”は、継続のモチベーションとして意外とバカにできない。
VSCodeからの移行を早めた、Neovimプラグイン最小セット(5選)
Neovimへの移行で一番きついのは、Vim操作そのものよりも「VSCodeで当たり前だった導線」が急に消えることだと思う。
だから僕は、最初から全部を捨てるのではなく、VSCodeの快適さに直結していた部分だけをNeovim側に持ってきた。結果的にこれが、移行のスピードをかなり押し上げてくれた。
1) 検索・ファイル移動:Telescope
VSCodeの Ctrl + P でファイルを開く、あの体験。あれが無いと、移行は一気にしんどくなる。
Telescopeは、ファイル検索・文字列検索・最近開いたファイルなどを“同じ入口”で触れるので、まずここを整えるだけで「Neovimでも戦える感」が出てくる。
- 「目的のファイルに辿り着くまで」が速くなる
- AI CLIが出したエラー行や関数名を、そのまま検索して飛べる
- ターミナル中心の流れを崩さずに済む
2) 補完:nvim-cmp(+ snippets)
VSCodeでの補完や入力支援は、移行すると想像以上に恋しくなる。
nvim-cmpを入れることで、入力体験が“現代のエディタ”になる。タイピングのストレスが下がると、Vim操作を覚える余裕も生まれるのが大きい。
- 変数名や関数名の補完が当たり前に効く
- スニペットがあると、定型コードが速い
- 「入力が遅い」という初期の不満を潰せる
3) 言語機能:LSP(Language Server Protocol)
Neovimを「ただの軽いエディタ」で終わらせないための中心がLSP。
定義ジャンプ・参照検索・リネーム・診断(エラー表示)など、VSCodeで当たり前だった機能を戻してくれる。ここが整うと、Neovimが“普段使い”になる。
- どの言語でも同じ操作で「定義へ」「参照を見る」ができる
- リファクタの安心感が出る
- プロジェクトが大きくなるほど効く
4) 構文理解:Tree-sitter
ハイライトが綺麗、というだけじゃなくて、「コードをコードとして扱える」感覚が出てくる。
構文単位の選択やテキストオブジェクトと組み合わせると、編集ミスが減って操作が気持ちよくなる。地味だけど、使い続けるほど効くタイプ。
- 色分けが正確になって読みやすい
- 関数単位・ブロック単位で編集しやすい
- “やってる感”が増す(わりと大事)
5) Git差分:gitsigns
ターミナル中心で作業するなら、差分確認の導線も短くしたい。
gitsignsがあると、編集しながら「どこを変えたか」が常に見えるし、行単位で差分確認もできる。Neovimの中で完結する範囲が広がるほど、IDEに戻る理由が減る。
- 変更が可視化されて安心
- ちょっとした修正→差分確認が速い
- コミット前の確認が楽になる
プラグインは“甘え”じゃなくて、移行を成功させるための戦略
Neovimの良さは、素のまま我慢して鍛えることじゃなくて、自分の作業導線を作れることだと思っている。
最初は特に、VSCodeで慣れていた「探す」「飛ぶ」「補完する」「差分を見る」を先に取り戻す。そうすると、Vim操作の学習に集中できて、移行が現実的になる。
最初の1週間はこれだけ覚えた:Vim操作の最小セット
Neovimを触り始めた最初の1週間は、全部を覚えようとしないようにした。
コマンドは無限にあるし、最初から“Vimmer”みたいな動きを目指すとだいたい挫折する。僕がやったのはシンプルで、普段の開発で本当に使う操作だけに絞って、毎日それだけ反復することだった。
ここでは「これだけ覚えれば、とりあえずNeovimで仕事が回り始める」という最小セットをまとめる。
0日目:まずは“モード”だけ理解する
Vimが難しく見える最大の理由は、モードがあることだと思う。
でも逆に言うと、最初はこれだけでいい。
i:Insert(文字入力)Esc:Normal(操作するモードに戻る)::コマンド入力(保存や終了など)
「入力したいときは i、迷ったら Esc」を体に入れる。ここが安定すると、パニックが減る。
1〜2日目:移動はこれだけ(まず“止まらない”が大事)
最初に覚えるべきは、編集より移動。移動が詰まると全部が遅くなる。
h j k l:左右下上(基本のカーソル移動)w / b:単語単位で進む / 戻る0 / ^ / $:行頭 / 行頭の最初の文字 / 行末gg / G:ファイル先頭 / ファイル末尾{ / }:段落単位で移動(地味に便利)Ctrl + d / Ctrl + u:半ページ下 / 半ページ上
3日目:検索とジャンプ(VSCodeの“探して移動”を取り戻す)
Neovimを実戦投入できるかどうかは、検索が気持ちよくなるかにかかってる。
/:前方検索(文字列を探す)n / N:次へ / 前へ* / #:カーソル上の単語を検索(前方 / 後方)f{char} / F{char}:同じ行の1文字へ移動(前方 / 後方); / ,:fの繰り返し(次 / 前)
4日目:削除・変更(“編集”の基本パターンだけ)
ここから編集。とはいえ最初は複雑なことはやらず、頻出だけ。
x:1文字削除dd:1行削除dw:単語を削除cw:単語を変更(削除してInsertへ)cc:行を変更D:カーソル位置から行末まで削除C:カーソル位置から行末まで変更
コツは「d=削除、c=変更」という型を覚えること。
dw / cw / dd / cc だけでも編集が回り始める。
5日目:コピペ(ヤンク)と貼り付け
コピペは避けて通れない。まずはこの4つで十分。
yy:1行コピーp / P:後ろに貼る / 前に貼るyw:単語コピー(必要になったら)v:範囲選択してy(選択コピー)
6日目:Undoとやり直し(安心感が出る)
ミスったときに戻れる安心感がないと、操作が怖くなる。
u:UndoCtrl + r:Redo
7日目:保存・終了(ここで詰まると一生つらい)
最後はこれ。ここで迷うと“Vim怖い”が続く。
:w:保存:q:終了:wq:保存して終了:q!:保存せず終了
1週間で覚えなくてよかったもの(後回しでOK)
最初の段階でいきなり手を出すと沼りやすいものもある。
- マクロ、レジスタ、複雑なテキストオブジェクト
- 置換の奥義(
:%s/.../.../gなど)は必要になったらでOK - 自前のキーマップ最適化(慣れてからで十分)
おわりに
僕にとってNeovimは、「軽いエディタ」以上に、AI CLI時代に作業を繋げるための道具だった。
ターミナル中心に寄せることで、IDE往復の摩擦が減り、メモリ消費のストレスも小さくなった。
もちろん学習コストはある。でも、最初から全部覚えようとしないで、VSCodeの導線をプラグインで再現しつつ、必要な操作だけを毎日使う。これだけで、Neovimは十分“実用”になる。
そして最後にもう一度。
ターミナルで操作していると、どうしても「やってる感」が出てきて、気分が上がってくる。これが意外と大事で、継続できる。継続できるから、慣れる。慣れるから、さらに速くなる。
このループに入れたのが、今Neovimを使っている一番の理由かもしれない。