<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Neovim on hagizo.io</title><link>https://ha.gizwoo.com/tags/neovim/</link><description>Recent content in Neovim on hagizo.io</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 20 May 2026 20:31:12 +0900</lastBuildDate><atom:link href="https://ha.gizwoo.com/tags/neovim/index.xml" rel="self" type="application/rss+xml"/><item><title>Neovim環境を育てる：ターミナル・ファイル操作・キーマップ設計</title><link>https://ha.gizwoo.com/neovim-keymap-setup-qw7plm3xzn/</link><pubDate>Thu, 23 Apr 2026 09:30:00 +0900</pubDate><guid>https://ha.gizwoo.com/neovim-keymap-setup-qw7plm3xzn/</guid><description>&lt;p&gt;Neovim環境は、エディタ単体ではなく「ターミナル」「ファイル操作」「キーマップ設計」まで含めて整えると使いやすくなる。特に毎日触る操作は、コマンド入力よりもキー操作に寄せることで、作業の流れを止めにくくなる。&lt;/p&gt;
&lt;h2 id="全体方針"&gt;全体方針
&lt;/h2&gt;&lt;p&gt;最初から完成形を目指すよりも、日々の操作を少しずつ改善していく方が長続きしやすい。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;項目&lt;/th&gt;
 &lt;th&gt;採用しているもの&lt;/th&gt;
 &lt;th&gt;理由&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;ターミナル&lt;/td&gt;
 &lt;td&gt;WezTerm&lt;/td&gt;
 &lt;td&gt;Luaで設定でき、Neovim設定との親和性が高い&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ファイルエクスプローラ&lt;/td&gt;
 &lt;td&gt;neo-tree.nvim&lt;/td&gt;
 &lt;td&gt;ファイルだけでなく、バッファ一覧も扱いやすい&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ショートカット設計&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;;&lt;/code&gt; / &lt;code&gt;;;&lt;/code&gt; プレフィックス&lt;/td&gt;
 &lt;td&gt;1文字キーの枯渇を避けつつ、体系化しやすい&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;キーガイド&lt;/td&gt;
 &lt;td&gt;which-key.nvim&lt;/td&gt;
 &lt;td&gt;入力途中で次の候補を確認できる&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="weztermを使う理由"&gt;WezTermを使う理由
&lt;/h2&gt;&lt;p&gt;WezTermは設定ファイルをLuaで書けるターミナル。Neovimの設定もLuaで書く場合、ターミナル側もLuaで管理できるのは大きな利点になる。フォント、配色、キーバインド、タブ、ペインなどをコードとして扱えるため、dotfilesで管理しやすい。&lt;/p&gt;
&lt;p&gt;ターミナルとエディタの設定言語が揃うことで、環境全体を一つの開発基盤として扱える。&lt;/p&gt;
&lt;h2 id="ファイル操作はneo-treenvim"&gt;ファイル操作はneo-tree.nvim
&lt;/h2&gt;&lt;p&gt;ファイルエクスプローラにはneo-tree.nvimを使っている。neo-tree.nvimは filesystem、buffers、git_status などを扱える。特に便利なのは、開いているバッファ一覧を表示できる点。&lt;/p&gt;
&lt;p&gt;ファイルツリーだけでは「今どのファイルを開いているか」が見えにくいことがある。バッファ一覧をサイドバーで確認できると、作業中の文脈を保ったまま移動しやすい。&lt;/p&gt;
&lt;h2 id="キーマップ設計"&gt;キーマップ設計
&lt;/h2&gt;&lt;p&gt;Neovimでは、よく使う操作をUserCommandにする方法と、キーマップに割り当てる方法がある。頻繁に使う操作は、コマンド入力よりキーマップ化した方が速い。毎回 &lt;code&gt;:CommandName&lt;/code&gt; と入力するより、キー入力だけで実行できる方が作業の流れを止めにくい。&lt;/p&gt;
&lt;h3 id="-と--を使う"&gt;&lt;code&gt;;&lt;/code&gt; と &lt;code&gt;;;&lt;/code&gt; を使う
&lt;/h3&gt;&lt;p&gt;1文字のアルファベットキーだけでショートカットを作ると、すぐに割り当て先が足りなくなる。そこで、&lt;code&gt;;&lt;/code&gt; や &lt;code&gt;;;&lt;/code&gt; をプレフィックスとして使う。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;キー&lt;/th&gt;
 &lt;th&gt;用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;よく使う一等地の操作&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;;;g&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Git系メニュー&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;;;f&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ファイル系メニュー&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;;;b&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;バッファ系メニュー&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;;;l&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;LSP系メニュー&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Git系であれば、次のように整理できる。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;キー&lt;/th&gt;
 &lt;th&gt;操作例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;;;ga&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;git add&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;;;gp&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;git push&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;;;gs&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;git status&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;プレフィックスで分類しておくと、キーマップが増えても破綻しにくい。&lt;/p&gt;
&lt;h2 id="which-keynvimで補助する"&gt;which-key.nvimで補助する
&lt;/h2&gt;&lt;p&gt;キーマップを増やすと、次に問題になるのは「何を割り当てたか忘れる」こと。which-key.nvimは、キー入力の途中で利用可能なキーバインド候補をポップアップ表示するNeovimプラグイン。&lt;/p&gt;
&lt;p&gt;たとえば &lt;code&gt;;;g&lt;/code&gt; まで入力した時点でGit系の候補が表示されれば、次に &lt;code&gt;a&lt;/code&gt;、&lt;code&gt;p&lt;/code&gt;、&lt;code&gt;s&lt;/code&gt; のどれを押せばよいか確認できる。各キーマップに &lt;code&gt;desc&lt;/code&gt; を付けておくと、which-key.nvimで表示される説明も管理しやすい。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Neovim環境は、プラグインを大量に入れるよりも、よく使う操作を迷わず実行できる状態にすることが重要。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;方針&lt;/th&gt;
 &lt;th&gt;内容&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;ターミナル&lt;/td&gt;
 &lt;td&gt;WezTermでLua設定に寄せる&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ファイル操作&lt;/td&gt;
 &lt;td&gt;neo-tree.nvimでファイルとバッファを扱う&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;操作体系&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;;&lt;/code&gt; / &lt;code&gt;;;&lt;/code&gt; プレフィックスで分類する&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;補助&lt;/td&gt;
 &lt;td&gt;which-key.nvimで候補を表示する&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;日々の「少し面倒」をキーマップにしていくと、Neovim環境は自然に育っていく。最初から完璧な設定を作るより、自分の操作に合わせて少しずつ拡張する方が実用的。&lt;/p&gt;</description></item></channel></rss>