Neovim環境を育てる:ターミナル・ファイル操作・キーマップ設計


Neovim環境は、エディタ単体ではなく「ターミナル」「ファイル操作」「キーマップ設計」まで含めて整えると使いやすくなる。特に毎日触る操作は、コマンド入力よりもキー操作に寄せることで、作業の流れを止めにくくなる。

全体方針

最初から完成形を目指すよりも、日々の操作を少しずつ改善していく方が長続きしやすい。

項目採用しているもの理由
ターミナルWezTermLuaで設定でき、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文字のアルファベットキーだけでショートカットを作ると、すぐに割り当て先が足りなくなる。そこで、;;; をプレフィックスとして使う。

キー用途
;よく使う一等地の操作
;;gGit系メニュー
;;fファイル系メニュー
;;bバッファ系メニュー
;;lLSP系メニュー

Git系であれば、次のように整理できる。

キー操作例
;;gagit add
;;gpgit push
;;gsgit status

プレフィックスで分類しておくと、キーマップが増えても破綻しにくい。

which-key.nvimで補助する

キーマップを増やすと、次に問題になるのは「何を割り当てたか忘れる」こと。which-key.nvimは、キー入力の途中で利用可能なキーバインド候補をポップアップ表示するNeovimプラグイン。

たとえば ;;g まで入力した時点でGit系の候補が表示されれば、次に aps のどれを押せばよいか確認できる。各キーマップに desc を付けておくと、which-key.nvimで表示される説明も管理しやすい。

まとめ

Neovim環境は、プラグインを大量に入れるよりも、よく使う操作を迷わず実行できる状態にすることが重要。

方針内容
ターミナルWezTermでLua設定に寄せる
ファイル操作neo-tree.nvimでファイルとバッファを扱う
操作体系; / ;; プレフィックスで分類する
補助which-key.nvimで候補を表示する

日々の「少し面倒」をキーマップにしていくと、Neovim環境は自然に育っていく。最初から完璧な設定を作るより、自分の操作に合わせて少しずつ拡張する方が実用的。

関連記事