Neovim
エディタの設定、プラグイン、キーバインド。
トピックと記事目次
1 トピック記事
Neovim は編集、ウィンドウ、端末、言語クライアントなどを提供する。LazyVim はプラグイン、キー、設定規約をまとめたディストリビューションである。初期構築は軽くなるが、ファイルタイプ、プロジェクトルート、外部ツール、バージョンの理解は必要となる。
端末操作ができる読者向けのシリーズである。Vim が初めてなら :Tutor で入力、普通モードへの復帰、保存、終了を練習してから進む。
学習順序
| 段階 | 記事 | 到達点 |
|---|---|---|
| 1 | 本篇 | 設定場所と health check を確認する |
| 2 | 編集と探索 | テキストオブジェクト、レジスタ、quickfix |
| 3 | 言語ツール | LSP、補完、解析、整形を区別する |
| 4 | Rust 修正課題 | 失敗テストから修正と差分確認へ進む |
| 5 | プラグインとキー | 小さな上書きとキーの出所を理解する |
| 6 | 遠隔作業と入力 | 入力法、OSC52、Zellij と連携する |
| 7 | 保守 | バージョン固定、切り分け、復旧 |
既存環境では必要な記事から読める。初学者は課題を完了してから任意プラグインを追加する。
必要条件を確認する
LazyVim の現行要件と照合する。フォントは記号表示、コンパイラは parser やネイティブプラグイン、SDK は対象言語に関係する。
設定規約は LazyVim 16 を参考にする。保守環境の Neovim 0.13 開発版を読者へ要求するものではない。API 差異を調べるときは正確なバージョンを記録する。
日常設定と分離して試す
Linux/macOS では NVIM_APPNAME で練習用の名前を使える。保存先が存在しないことを確認して実行する。
起動する。
NVIM_APPNAME=nvim-lab
初回はプラグイン取得の通信や構築ツールが必要になる。以後も同じ名前で起動する。通常の nvim は従来の設定を使うため、試すために日常設定を削除しない。導入手順
Windows は既定パスが異なる。実際の場所はエディタ内で確認できる。
:lua print(vim.fn.stdpath("config"))
:lua print(vim.fn.stdpath("data"))
最初が設定、次がプラグインなどのデータ領域である。
ファイルの役割
nvim-lab/
├── init.lua
├── lazyvim.json
├── lazy-lock.json
└── lua/
├── config/
│ ├── lazy.lua
│ ├── options.lua
│ ├── keymaps.lua
│ └── autocmds.lua
└── plugins/
└── editing.lua
init.lua が入口、lazy.lua がプラグイン初期化、options/keymaps/autocmds が設定、キー、イベントを担当する。lua/plugins/ はプラグイン仕様を返し、lazyvim.json は extras、lazy-lock.json はプラグインのコミットを記録する。
言語対応は :LazyExtras で確認・有効化し、指示に従って導入と再起動を行う。optional の機能や外部 SDK がすべて入るとは限らない。
初回起動の確認
:LazyHealth と作業に関係する :checkhealth を確認する。無関係な任意 provider の不足と、使用言語の必須ツール不足は分ける。
lua/config/options.lua に設定する例:
vim.opt.number = true
vim.opt.relativenumber = true
vim.g.autoformat = false
自動整形を止めると、学習中の編集範囲を観察しやすい。後でプロジェクト方針に合わせる。言語ツール
ファイルを開いて保存でき、設定場所と実際の不足項目を説明できたら、編集と探索へ進み、小さなプロジェクトで連携を確認する。