ディレクトリ構造
このページでは、Neovim設定のディレクトリ構造と各ディレクトリの役割について説明します。
全体構造
nvim/
├── init.lua # エントリーポイント
├── lua/
│ └── alex/ # メイン設定モジュール
│ ├── init.lua # メイン初期化ファイル
│ ├── environments/ # 環境別設定
│ ├── keymaps/ # キーマップ定義
│ ├── loader/ # プラグインローダー
│ ├── native/ # Neovimネイティブ機能
│ ├── plugins/ # プラグイン設定
│ └── utils/ # ユーティリティ関数
├── after/ # ファイルタイプ別設定
└── docs/ # ドキュメント各ディレクトリの詳細
init.lua
Neovimのエントリーポイント。lua/peinanモジュールを読み込みます。
ファイル: init.lua
lua
require("peinan")lua/peinan/
メインの設定モジュール。すべての設定がこのディレクトリ配下に配置されています。
lua/peinan/init.lua
メインの初期化ファイル。以下の順序でモジュールを読み込みます:
- 環境チェック(
peinan.environments) - ネイティブオプション設定(
peinan.native.options) - プラグインローダー(
peinan.loader) - ネイティブ機能(
peinan.native) - キーマップ(
peinan.keymaps)
ファイル: lua/peinan/init.lua
lua/peinan/environments/
環境別の設定を管理します。Neovide、WezTerm、VSCodeなど、実行環境に応じた設定を適用します。
主要ファイル:
init.lua- 環境検出と初期化neovide.lua- Neovide固有の設定wezterm.lua- WezTerm固有の設定vscode.lua- VSCode拡張機能用の設定
役割:
- 環境変数の設定
- 環境固有のオプション設定
- 環境に応じた初期化の制御
lua/peinan/keymaps/
すべてのキーマップ定義を管理します。一箇所に集約することで、キーバインドの競合を防ぎます。
主要ファイル:
init.lua- キーマップの初期化と定義utils.lua- キーマップ用のユーティリティ関数
役割:
- すべてのキーバインドの定義
- モード別(normal, insert, visual, terminal, command)のキーマップ
- プラグイン固有のキーマップ
lua/peinan/loader/
プラグインのローディングを管理します。Lazy.nvimを使用してプラグインを遅延読み込みします。
主要ファイル:
bootstrap.lua- Lazy.nvimのブートストラップinit.lua- Lazy.nvimの初期化plugins.lua- プラグイン定義一覧
役割:
- プラグインのインストールと更新
- 遅延読み込みの設定
- プラグインの依存関係管理
lua/peinan/native/
Neovimのネイティブ機能の設定を管理します。プラグインに依存しない機能を実装します。
主要ファイル:
init.lua- ネイティブ機能の初期化options.lua- Neovimオプション設定lsp/- LSP設定init.lua- LSPの初期化と診断設定defaults.lua- デフォルトLSP設定tsn.lua- TypeScript/Node.js固有の設定
statuscolumn.lua- ステータスカラムの設定terminal.lua- ターミナル設定winbar.lua- ウィンドウバーの設定
役割:
- Neovimの基本オプション設定
- LSPの設定と診断
- UI要素のカスタマイズ
lua/peinan/plugins/
各プラグインの設定ファイルを管理します。プラグインごとに個別の設定ファイルがあります。
主要ファイル:
dashboard.lua- ダッシュボード設定telescope.lua- Telescope設定treesitter.lua- Tree-sitter設定completion.lua- 補完設定lualine.lua- ステータスライン設定- その他多数のプラグイン設定
役割:
- プラグイン固有の設定
- プラグイン間の連携設定
lua/peinan/utils/
ユーティリティ関数を提供します。
主要ファイル:
init.lua- ユーティリティの集約chars.lua- 文字定数git.lua- Git関連ユーティリティlua.lua- Lua関連ユーティリティneovim.lua- Neovim関連ユーティリティ
役割:
- 共通関数の提供
- ヘルパー関数の集約
after/
ファイルタイプ別の設定を管理します。特定のファイルタイプに対して追加の設定を適用します。
主要ファイル:
ftplugin/*.lua- ファイルタイプ別の設定
役割:
- ファイルタイプ固有のオプション設定
- ファイルタイプ固有のキーマップ
モジュール間の依存関係
詳細な依存関係については、依存関係図を参照してください。