メインコンテンツへスキップ
記事一覧に戻る
tools

【2025年版】LazyVim完全ガイド - モダンなNeovim環境を構築しよう

LazyVimの導入から使い方、カスタマイズまで初心者にもわかりやすく解説。Neovimを最強のエディタに変える方法を学びましょう。

2025-11-30T15:00:0013 min readAdabana Saki
-
LazyVimNeovimVimエディタ開発環境Omarchy

LazyVim完全ガイド - モダンなNeovim環境を構築しよう

LazyVimは、Neovimをすぐに使える本格的な開発環境に変えてくれる設定(ディストリビューション)です。

VimやNeovimは設定が複雑で有名ですが、LazyVimを使えば最初から便利なプラグインが設定済みの状態で使い始められます。

この記事では、LazyVimの基本から応用まで、初心者にもわかりやすく解説します。

LazyVimとは?

Neovimの課題

Neovimは非常に高機能なテキストエディタですが、素の状態では:

  • 機能が少ない
  • 設定が複雑
  • プラグインの選定が大変

そのため、多くの人が「設定に時間がかかりすぎて挫折」してしまいます。

LazyVimが解決すること

LazyVimは、実用的なデフォルト設定厳選されたプラグインを提供します。

【LazyVimのイメージ】

Neovim(素)         LazyVim
┌─────────┐          ┌─────────────────────────┐
│ 最小限の │   →     │ ファイルツリー          │
│ 機能    │          │ 補完機能                │
│         │          │ シンタックスハイライト   │
└─────────┘          │ Git連携                 │
                     │ 検索機能                │
                     │ その他多数...           │
                     └─────────────────────────┘

動作要件

LazyVimを使うには以下が必要です:

項目要件
Neovim0.11.2以上(LuaJIT必須)
Git2.19.0以上
フォントNerd Font v3.0以上(推奨)
ターミナルTrue Color対応

インストール方法

既存の設定をバックアップ

まず、既存のNeovim設定をバックアップします(初めての方はスキップ):

# 既存の設定をバックアップ
mv ~/.config/nvim ~/.config/nvim.backup
mv ~/.local/share/nvim ~/.local/share/nvim.backup
mv ~/.local/state/nvim ~/.local/state/nvim.backup
mv ~/.cache/nvim ~/.cache/nvim.backup

LazyVimをインストール

git clone https://github.com/LazyVim/starter ~/.config/nvim

初回起動

nvim

初回起動時に必要なプラグインが自動的にインストールされます。少し時間がかかりますが、完了するまで待ちましょう。

Omarchyの場合

OmarchyにはLazyVimがプリインストールされています。追加の設定は不要です。

基本的な使い方

Vimの基本を理解しよう

LazyVimはNeovim(Vimベース)なので、Vimの基本操作を理解する必要があります。

モード

Vimには複数の「モード」があります:

モード説明入り方
Normal移動・編集コマンドEsc
Insertテキスト入力i, a, o
Visual範囲選択v, V
Commandコマンド実行:
【モードのイメージ】

Normal(通常)
    │
    ├─ i → Insert(入力)─── Esc ──→ Normal
    │
    ├─ v → Visual(選択)─── Esc ──→ Normal
    │
    └─ : → Command(コマンド)── Enter/Esc ──→ Normal

基本的な移動

キー動作
h
j
k
l
w次の単語
b前の単語
0行頭
$行末
ggファイル先頭
Gファイル末尾

基本的な編集

キー動作
iカーソル位置で入力開始
aカーソルの後ろで入力開始
o下に新しい行を作って入力開始
O上に新しい行を作って入力開始
x1文字削除
dd1行削除
yy1行コピー
p貼り付け
u元に戻す
Ctrl + rやり直し

LazyVimのリーダーキー

LazyVimではSpaceキーがリーダーキーです。多くの機能はSpaceから始まります。

【リーダーキーのイメージ】

Space を押すと → メニューが表示される

Space + f → ファイル関連
Space + g → Git関連
Space + c → コード関連
Space + b → バッファ関連
...

Spaceを押すと、次に何を押せばいいかヒントが表示されます(which-keyプラグイン)。

よく使う機能

ファイル操作

キー動作
Space + eファイルエクスプローラーを開く
Space + f + fファイル検索
Space + f + r最近開いたファイル
Space + f + gファイル内容を検索(grep)

ファイルエクスプローラー(neo-tree)

Space + eでファイルエクスプローラーが開きます。

┌─────────────────────────────────────────────────┐
│ neo-tree │ main.py                              │
│ ─────────│                                       │
│ ▼ src/   │ def main():                          │
│   main.py│     print("Hello")                   │
│   utils/ │                                       │
│ ▼ tests/ │                                       │
│   test.py│                                       │
└─────────────────────────────────────────────────┘

ファイルエクスプローラーでの操作:

キー動作
Enterファイルを開く
a新規ファイル/フォルダ作成
d削除
rリネーム
cコピー
m移動
q閉じる

バッファ操作

「バッファ」は開いているファイルのことです。

キー動作
Space + b + bバッファ一覧
Space + b + dバッファを閉じる
H前のバッファ
L次のバッファ

ウィンドウ操作

画面を分割して複数のファイルを表示できます。

キー動作
Space + w + v垂直分割
Space + w + s水平分割
Space + w + dウィンドウを閉じる
Ctrl + h/j/k/lウィンドウ間移動
【ウィンドウ分割のイメージ】

垂直分割(Space + w + v)       水平分割(Space + w + s)
┌──────────┬──────────┐        ┌─────────────────────┐
│          │          │        │                     │
│ ファイル1 │ ファイル2 │        │     ファイル1        │
│          │          │        ├─────────────────────┤
│          │          │        │     ファイル2        │
└──────────┴──────────┘        └─────────────────────┘

検索

キー動作
/現在のファイル内を検索
n次の検索結果
N前の検索結果
Space + f + gプロジェクト全体を検索
Space + s + gカーソル下の単語を検索

Git連携

LazyVimにはGit連携機能が組み込まれています。

キー動作
Space + g + gLazygitを開く
Space + g + bgit blame表示
Space + g + h + sハンクをステージ
Space + g + h + rハンクをリセット
]h次の変更へ
[h前の変更へ

LSP(言語サーバー)

LSP(Language Server Protocol)により、IDE並みの機能が使えます。

LSPでできること

  • 自動補完: コードを入力すると候補が表示される
  • 定義ジャンプ: 関数の定義場所に移動
  • エラー表示: リアルタイムでエラーを表示
  • リネーム: 変数名を一括変更
  • フォーマット: コードを自動整形

LSPの操作

キー動作
g + d定義にジャンプ
g + r参照を表示
g + D宣言にジャンプ
Kホバー情報(ドキュメント表示)
Space + c + aコードアクション
Space + c + rリネーム
Space + c + fフォーマット

補完の使い方

コードを入力すると自動的に補完候補が表示されます。

【補完のイメージ】

print|     ← カーソル位置
  ┌─────────────────────┐
  │ print()       関数  │
  │ printf()      関数  │
  │ println()     関数  │
  └─────────────────────┘
キー動作
Ctrl + n次の候補
Ctrl + p前の候補
Enter候補を確定
Ctrl + e補完をキャンセル

言語サーバーの追加

LazyVimはMasonを使って言語サーバーを管理します。

:Mason

Masonを開いて、必要な言語サーバーをインストールできます。

【Mason画面】
┌──────────────────────────────────────────────┐
│ Mason                                        │
│                                              │
│ LSP                                          │
│   ✓ lua_ls           (installed)             │
│   ✓ pyright          (installed)             │
│   ○ typescript-...   (not installed)         │
│                                              │
│ i = install, X = uninstall                   │
└──────────────────────────────────────────────┘

カスタマイズ

設定ファイルの構造

LazyVimの設定は以下のような構造です:

~/.config/nvim/
├── init.lua           # エントリーポイント
├── lua/
│   ├── config/
│   │   ├── lazy.lua   # プラグインマネージャー設定
│   │   ├── options.lua # 基本オプション
│   │   ├── keymaps.lua # キーマップ
│   │   └── autocmds.lua # 自動コマンド
│   └── plugins/
│       └── *.lua      # カスタムプラグイン設定
└── lazyvim.json       # LazyVimの設定

オプションのカスタマイズ

~/.config/nvim/lua/config/options.luaで基本設定を変更できます:

-- ~/.config/nvim/lua/config/options.lua

-- 行番号の表示
vim.opt.number = true
vim.opt.relativenumber = true

-- タブの設定
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true

-- 検索の設定
vim.opt.ignorecase = true
vim.opt.smartcase = true

-- クリップボード連携
vim.opt.clipboard = "unnamedplus"

-- マウスを有効化
vim.opt.mouse = "a"

キーマップの追加

~/.config/nvim/lua/config/keymaps.luaでキーマップを追加できます:

-- ~/.config/nvim/lua/config/keymaps.lua

local keymap = vim.keymap.set

-- jkでノーマルモードに戻る
keymap("i", "jk", "<Esc>", { desc = "Exit insert mode" })

-- 行の先頭/末尾に移動
keymap("n", "H", "^", { desc = "Go to line start" })
keymap("n", "L", "$", { desc = "Go to line end" })

-- ウィンドウサイズ調整
keymap("n", "<C-Up>", ":resize +2<CR>", { desc = "Increase height" })
keymap("n", "<C-Down>", ":resize -2<CR>", { desc = "Decrease height" })

プラグインの追加

~/.config/nvim/lua/plugins/ディレクトリにLuaファイルを作成します:

-- ~/.config/nvim/lua/plugins/custom.lua

return {
  -- カラースキーム
  {
    "catppuccin/nvim",
    name = "catppuccin",
    priority = 1000,
  },

  -- GitHub Copilot
  {
    "github/copilot.vim",
    event = "InsertEnter",
  },

  -- Markdown プレビュー
  {
    "iamcco/markdown-preview.nvim",
    ft = "markdown",
    build = function()
      vim.fn["mkdp#util#install"]()
    end,
  },
}

カラースキームの変更

-- ~/.config/nvim/lua/plugins/colorscheme.lua

return {
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = "catppuccin",
    },
  },
}

便利なプラグイン

LazyVimに追加すると便利なプラグインを紹介します。

コード補助

プラグイン説明
github/copilot.vimGitHub Copilot
Exafunction/codeium.vimCodeium(無料のAI補完)
windwp/nvim-autopairs括弧の自動補完

UI強化

プラグイン説明
folke/noice.nvimメッセージUI改善
rcarriga/nvim-notify通知UI
akinsho/bufferline.nvimタブ表示

Git強化

プラグイン説明
sindrets/diffview.nvim差分表示
NeogitOrg/neogitGit操作UI

言語サポート

プラグイン説明
mfussenegger/nvim-dapデバッガー
nvim-neotest/neotestテストランナー

トラブルシューティング

プラグインが動かない

:Lazy sync

これでプラグインの更新と同期が行われます。

LSPが動かない

:LspInfo

接続されているLSPの状態を確認できます。

エラーログを確認

:messages

または:

nvim --headless "+messages" +q

設定をリセット

rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.cache/nvim

# 再インストール
git clone https://github.com/LazyVim/starter ~/.config/nvim

実践的なワークフロー

ファイルを開いて編集

1. nvim . でプロジェクトを開く
2. Space + f + f でファイル検索
3. 編集
4. :w で保存
5. Space + b + d でバッファを閉じる

コードの問題を修正

1. Space + x + x でトラブルリスト表示
2. エラー箇所に移動
3. Space + c + a でコードアクション
4. 修正を選択

Git操作

1. Space + g + g で Lazygit を開く
2. ファイルをステージング
3. コミットメッセージを入力
4. プッシュ

まとめ

LazyVimの主要な操作をまとめます:

カテゴリよく使うキー
ファイルSpace + e, Space + f + f
バッファSpace + b + b, H/L
ウィンドウCtrl + h/j/k/l, Space + w + v/s
検索/, Space + f + g
GitSpace + g + g
LSPg + d, K, Space + c + a

LazyVimは最初は覚えることが多いですが、慣れると非常に効率的に作業できます。

まずは基本的なファイル操作から始めて、徐々にキーバインドを覚えていきましょう。

関連記事

参考リンク