Neovim環境は、エディタ単体ではなく「ターミナル」「ファイル操作」「キーマップ設計」まで含めて整えると使いやすくなる。特に毎日触る操作は、コマンド入力よりもキー操作に寄せることで、作業の流れを止めにくくなる。
全体方針
最初から完成形を目指すよりも、日々の操作を少しずつ改善していく方が長続きしやすい。
| 項目 | 採用しているもの | 理由 |
|---|---|---|
| ターミナル | WezTerm | Luaで設定でき、Neovim設定との親和性が高い |
| ファイルエクスプローラ | neo-tree.nvim | ファイルだけでなく、バッファ一覧も扱いやすい |
| ショートカット設計 | ; / ;; プレフィックス | 1文字キーの枯渇を避けつつ、体系化しやすい |
| キーガイド | which-key.nvim | 入力途中で次の候補を確認できる |
WezTermを使う理由
WezTermは設定ファイルをLuaで書けるターミナル。Neovimの設定もLuaで書く場合、ターミナル側もLuaで管理できるのは大きな利点になる。フォント、配色、キーバインド、タブ、ペインなどをコードとして扱えるため、dotfilesで管理しやすい。
ターミナルとエディタの設定言語が揃うことで、環境全体を一つの開発基盤として扱える。
ファイル操作はneo-tree.nvim
ファイルエクスプローラにはneo-tree.nvimを使っている。neo-tree.nvimは filesystem、buffers、git_status などを扱える。特に便利なのは、開いているバッファ一覧を表示できる点。
ファイルツリーだけでは「今どのファイルを開いているか」が見えにくいことがある。バッファ一覧をサイドバーで確認できると、作業中の文脈を保ったまま移動しやすい。
キーマップ設計
Neovimでは、よく使う操作をUserCommandにする方法と、キーマップに割り当てる方法がある。頻繁に使う操作は、コマンド入力よりキーマップ化した方が速い。毎回 :CommandName と入力するより、キー入力だけで実行できる方が作業の流れを止めにくい。
; と ;; を使う
1文字のアルファベットキーだけでショートカットを作ると、すぐに割り当て先が足りなくなる。そこで、; や ;; をプレフィックスとして使う。
| キー | 用途 |
|---|---|
; | よく使う一等地の操作 |
;;g | Git系メニュー |
;;f | ファイル系メニュー |
;;b | バッファ系メニュー |
;;l | LSP系メニュー |
Git系であれば、次のように整理できる。
| キー | 操作例 |
|---|---|
;;ga | git add |
;;gp | git push |
;;gs | git status |
プレフィックスで分類しておくと、キーマップが増えても破綻しにくい。
which-key.nvimで補助する
キーマップを増やすと、次に問題になるのは「何を割り当てたか忘れる」こと。which-key.nvimは、キー入力の途中で利用可能なキーバインド候補をポップアップ表示するNeovimプラグイン。
たとえば ;;g まで入力した時点でGit系の候補が表示されれば、次に a、p、s のどれを押せばよいか確認できる。各キーマップに desc を付けておくと、which-key.nvimで表示される説明も管理しやすい。
まとめ
Neovim環境は、プラグインを大量に入れるよりも、よく使う操作を迷わず実行できる状態にすることが重要。
| 方針 | 内容 |
|---|---|
| ターミナル | WezTermでLua設定に寄せる |
| ファイル操作 | neo-tree.nvimでファイルとバッファを扱う |
| 操作体系 | ; / ;; プレフィックスで分類する |
| 補助 | which-key.nvimで候補を表示する |
日々の「少し面倒」をキーマップにしていくと、Neovim環境は自然に育っていく。最初から完璧な設定を作るより、自分の操作に合わせて少しずつ拡張する方が実用的。