LazyVim 操作方法一覧

:::note info
あくまで備忘録．随時追記．
:::
## 🎯 基本操作

### モード切り替え
| キー | 機能 | 説明 |
|------|------|------|
| `i` | Insert mode | カーソル位置から挿入 |
| `a` | Insert mode (append) | カーソルの次から挿入 |
| `o` | Insert mode (open) | 下に新しい行を作成 |
| `O` | Insert mode (Open) | 上に新しい行を作成 |
| `v` | Visual mode | 文字単位で選択 |
| `V` | Visual line mode | 行単位で選択 |
| `Ctrl+v` | Visual block mode | 矩形選択 |
| `ESC` / `Ctrl+[` | Normal mode | 通常モードに戻る |
| `:` | Command mode | コマンドモード |

### カーソル移動
| キー | 機能 | 説明 |
|------|------|------|
| `h` | 左移動 | ← |
| `j` | 下移動 | ↓ |
| `k` | 上移動 | ↑ |
| `l` | 右移動 | → |
| `w` | 次の単語 | 単語の先頭へ |
| `b` | 前の単語 | 前の単語の先頭へ |
| `e` | 単語の末尾 | 現在の単語の末尾へ |
| `0` | 行頭 | 行の最初へ |
| `^` | 行の最初の文字 | 空白を除く最初の文字へ |
| `$` | 行末 | 行の最後へ |
| `gg` | ファイルの先頭 | 1行目へ |
| `G` | ファイルの末尾 | 最終行へ |
| `{数字}G` | 指定行へ | 例: `10G` = 10行目 |
| `Ctrl+d` | 半ページ下 | ↓ |
| `Ctrl+u` | 半ページ上 | ↑ |
| `Ctrl+f` | 1ページ下 | Page Down |
| `Ctrl+b` | 1ページ上 | Page Up |
| `%` | 対応する括弧へ | (), {}, [] |

## 📁 ファイル操作 (Space + f)

| キー | 機能 | 説明 |
|------|------|------|
| `<Space>ff` | ファイル検索 | Telescopeでファイル検索 |
| `<Space>fr` | 最近使用したファイル | Recent files |
| `<Space>fg` | Grep検索 | ファイル内容を検索 |
| `<Space>fb` | バッファ一覧 | 開いているファイル一覧 |
| `<Space>fn` | 新規ファイル | New file |
| `<Space>fc` | 設定ファイル検索 | Config files |
| `<Space>fF` | カレントディレクトリ検索 | Current directory files |

## 🪟 ウィンドウ操作 (Space + w)

| キー | 機能 | 説明 |
|------|------|------|
| `<Space>ww` | 次のウィンドウ | ウィンドウ切り替え |
| `<Space>wd` | ウィンドウを閉じる | Delete window |
| `<Space>w-` | 水平分割 | Split horizontally |
| `<Space>w\|` | 垂直分割 | Split vertically |
| `<Space>ws` | 分割 | Split |
| `<Space>wv` | 垂直分割 | Vertical split |
| `Ctrl+h` | 左のウィンドウへ | ← |
| `Ctrl+j` | 下のウィンドウへ | ↓ |
| `Ctrl+k` | 上のウィンドウへ | ↑ |
| `Ctrl+l` | 右のウィンドウへ | → |
| `<Space>wm` | ウィンドウ最大化 | Maximize toggle |

## 📑 バッファ/タブ操作

### バッファ (Space + b)
| キー | 機能 | 説明 |
|------|------|------|
| `<Space>bd` | バッファを閉じる | Delete buffer |
| `<Space>bD` | 強制的に閉じる | Force delete |
| `<Space>bp` | バッファをピン留め | Pin buffer |
| `[b` | 前のバッファ | Previous buffer |
| `]b` | 次のバッファ | Next buffer |
| `<S-h>` | 前のバッファ | Shift + h |
| `<S-l>` | 次のバッファ | Shift + l |

### タブ (Space + Tab)
| キー | 機能 | 説明 |
|------|------|------|
| `<Space><Tab>l` | 最後のタブ | Last tab |
| `<Space><Tab>f` | 最初のタブ | First tab |
| `<Space><Tab><Tab>` | 新しいタブ | New tab |
| `<Space><Tab>]` | 次のタブ | Next tab |
| `<Space><Tab>[` | 前のタブ | Previous tab |
| `<Space><Tab>d` | タブを閉じる | Close tab |

## ✏️ 編集操作

### 基本編集
| キー | 機能 | 説明 |
|------|------|------|
| `x` | 文字削除 | 1文字削除 |
| `dd` | 行削除 | 現在の行を削除 |
| `dw` | 単語削除 | カーソルから単語末尾まで |
| `D` | 行末まで削除 | カーソルから行末まで |
| `yy` | 行コピー | 現在の行をコピー |
| `yw` | 単語コピー | 単語をコピー |
| `p` | 貼り付け（後） | カーソルの後に貼り付け |
| `P` | 貼り付け（前） | カーソルの前に貼り付け |
| `u` | 元に戻す | Undo |
| `Ctrl+r` | やり直し | Redo |
| `.` | 繰り返し | 最後の操作を繰り返す |

### テキストオブジェクト操作
| キー | 機能 | 説明 |
|------|------|------|
| `ciw` | 単語を変更 | Change inner word |
| `ci"` | ""内を変更 | Change inner quotes |
| `ci(` | ()内を変更 | Change inner parentheses |
| `ci{` | {}内を変更 | Change inner braces |
| `di[` | []内を削除 | Delete inner brackets |
| `viw` | 単語を選択 | Visual inner word |
| `va{` | {}を含めて選択 | Visual around braces |

## 🔍 検索と置換 (Space + s)

| キー | 機能 | 説明 |
|------|------|------|
| `/` | 前方検索 | 下方向に検索 |
| `?` | 後方検索 | 上方向に検索 |
| `n` | 次の検索結果 | Next |
| `N` | 前の検索結果 | Previous |
| `*` | カーソル下の単語を検索 | 前方検索 |
| `#` | カーソル下の単語を検索 | 後方検索 |
| `<Space>sr` | 検索して置換 | Search and replace (Spectre) |
| `<Space>sw` | カーソル下の単語を検索 | Search word |
| `<Space>sW` | カーソル下の単語を検索（WORD） | Search WORD |
| `<Space>sg` | Grep検索 | Search by grep |
| `:noh` | 検索ハイライト解除 | No highlight |

## 💻 コード操作 (Space + c)

### LSP機能
| キー | 機能 | 説明 |
|------|------|------|
| `gd` | 定義へジャンプ | Go to definition |
| `gr` | 参照を検索 | Go to references |
| `gI` | 実装へジャンプ | Go to implementation |
| `gy` | 型定義へジャンプ | Go to type definition |
| `gD` | 宣言へジャンプ | Go to declaration |
| `K` | ホバー情報 | Hover documentation |
| `gK` | シグネチャヘルプ | Signature help |
| `<Space>ca` | コードアクション | Code action |
| `<Space>cf` | フォーマット | Format |
| `<Space>cr` | リネーム | Rename |
| `<Space>cd` | 診断情報表示 | Line diagnostics |

### 診断（エラー/警告）
| キー | 機能 | 説明 |
|------|------|------|
| `]d` | 次の診断 | Next diagnostic |
| `[d` | 前の診断 | Previous diagnostic |
| `]e` | 次のエラー | Next error |
| `[e` | 前のエラー | Previous error |
| `]w` | 次の警告 | Next warning |
| `[w` | 前の警告 | Previous warning |

## 🌳 ファイルエクスプローラー (Neo-tree)

### 基本操作
| キー | 機能 | 説明 |
|------|------|------|
| `<Space>e` | エクスプローラー表示/非表示 | Toggle explorer |
| `<Space>E` | エクスプローラー（フォーカス） | Focus explorer |
| `<Space>be` | バッファエクスプローラー | Buffer explorer |
| `<Space>ge` | Gitエクスプローラー | Git explorer |
| `<ESC>` | Neo-treeを閉じる | Close Neo-tree |
| `q` | Neo-treeを閉じる | Quit Neo-tree |

### ファイル/フォルダ操作
| キー | 機能 | 説明 |
|------|------|------|
| `a` | 新規作成 | ファイル名入力（末尾に/でフォルダ） |
| `A` | 新規フォルダ作成 | Create directory |
| `d` | 削除 | Delete（確認あり） |
| `r` | リネーム | Rename |
| `y` | コピー | Copy（yank） |
| `x` | カット | Cut |
| `p` | 貼り付け | Paste |
| `c` | コピー（ファイル） | Copy file |
| `m` | 移動 | Move file |

### ナビゲーション
| キー | 機能 | 説明 |
|------|------|------|
| `<Enter>` | 開く/展開 | Open file/Expand folder |
| `l` | 開く/展開 | Open/Expand |
| `h` | 折りたたむ/親へ | Collapse/Go to parent |
| `j` | 下へ移動 | Move down |
| `k` | 上へ移動 | Move up |
| `H` | Hidden files 切り替え | Toggle hidden files |
| `.` | ルートディレクトリ設定 | Set as root |
| `<BS>` | 親ディレクトリへ | Navigate up |
| `P` | プレビュー切り替え | Toggle preview |
| `/` | ファイル検索 | Search files |
| `f` | フィルター | Filter files |
| `F` | フィルタークリア | Clear filter |

### 表示オプション
| キー | 機能 | 説明 |
|------|------|------|
| `i` | ファイル情報表示 | Show file info |
| `g?` | ヘルプ表示 | Show help |
| `R` | リフレッシュ | Refresh tree |
| `z` | 全て折りたたむ | Collapse all |
| `Z` | 全て展開 | Expand all |
| `W` | 幅を拡大 | Increase width |

### ウィンドウ操作
| キー | 機能 | 説明 |
|------|------|------|
| `s` | 水平分割で開く | Open in horizontal split |
| `v` | 垂直分割で開く | Open in vertical split |
| `t` | 新しいタブで開く | Open in new tab |
| `o` | システムで開く | Open with system app |
| `<C-w>` | ウィンドウ操作 | Window commands |

### Git操作（Gitエクスプローラー内）
| キー | 機能 | 説明 |
|------|------|------|
| `A` | 全てステージ | Stage all |
| `gu` | アンステージ | Unstage file |
| `ga` | ステージ | Stage file |
| `gr` | リバート | Revert file |
| `gc` | コミット | Commit |
| `gp` | プッシュ | Push |
| `gg` | 更新 | Refresh git status |

### 便利な操作の組み合わせ
| 操作 | 説明 |
|------|------|
| `<Space>e → /` | ファイルを素早く検索 |
| `<Space>e → a → folder/` | フォルダを作成 |
| `<Space>e → y → p` | ファイルを複製 |
| `<Space>e → . ` | カレントディレクトリをルートに設定 |
| `<Space>E` | 現在のファイルの場所を表示 |

## 🎮 Git操作 (Space + g)

| キー | 機能 | 説明 |
|------|------|------|
| `<Space>gg` | Lazygit | Git UI |
| `<Space>gb` | Git blame | 行ごとの変更者表示 |
| `<Space>gB` | Git blame（全体） | Full git blame |
| `<Space>gf` | Git file history | ファイルの履歴 |
| `<Space>gs` | Git status | ステータス表示 |
| `]h` | 次のhunk | Next git hunk |
| `[h` | 前のhunk | Previous git hunk |
| `<Space>ghp` | Hunkプレビュー | Preview hunk |
| `<Space>ghr` | Hunkリセット | Reset hunk |
| `<Space>ghs` | Hunkステージ | Stage hunk |

## 🔧 UI/表示操作 (Space + u)

| キー | 機能 | 説明 |
|------|------|------|
| `<Space>uc` | カラースキーム選択 | Colorscheme |
| `<Space>ul` | 行番号切り替え | Toggle line numbers |
| `<Space>uL` | 相対行番号切り替え | Toggle relative numbers |
| `<Space>uw` | 行折り返し切り替え | Toggle word wrap |
| `<Space>us` | スペル切り替え | Toggle spelling |
| `<Space>uh` | インレイヒント切り替え | Toggle inlay hints |
| `<Space>uf` | フォーマット切り替え | Toggle format on save |
| `<Space>ud` | 診断表示切り替え | Toggle diagnostics |

## 🛠 システム/ツール操作

### LazyVim管理
| キー | 機能 | 説明 |
|------|------|------|
| `<Space>l` | Lazy（プラグイン管理） | Plugin manager |
| `<Space>L` | LazyVim変更履歴 | LazyVim changelog |
| `:LazyExtras` | 拡張機能管理 | Manage extras |
| `:Mason` | LSPサーバー管理 | LSP installer |

### ターミナル
| キー | 機能 | 説明 |
|------|------|------|
| `<Space>ft` | ターミナル（フロート） | Float terminal |
| `<Space>fT` | ターミナル（現在位置） | Terminal here |
| `<C-/>` | ターミナルトグル | Toggle terminal |
| `<C-_>` | ターミナルトグル | Toggle terminal (alternative) |
| `<C-\><C-n>` | ターミナルから抜ける | Exit terminal mode |

### セッション管理
| キー | 機能 | 説明 |
|------|------|------|
| `<Space>qs` | セッション復元 | Restore session |
| `<Space>ql` | 最後のセッション復元 | Restore last session |
| `<Space>qd` | セッション選択 | Don't save session |

## 🎯 その他の便利なキー

### クイックフィックス
| キー | 機能 | 説明 |
|------|------|------|
| `<Space>xl` | ロケーションリスト | Location list |
| `<Space>xq` | クイックフィックス | Quickfix list |
| `[q` | 前のクイックフィックス | Previous quickfix |
| `]q` | 次のクイックフィックス | Next quickfix |

### 特殊操作
| キー | 機能 | 説明 |
|------|------|------|
| `<Space>?` | キーマップヘルプ | Keymaps help |
| `<Space>:` | コマンド履歴 | Command history |
| `<Space>qq` | 終了 | Quit all |
| `<Space>K` | キーワードヘルプ | Keyword help |
| `gcc` | 行コメント切り替え | Toggle comment |
| `gc` | 選択範囲コメント切り替え | Toggle comment (visual) |
| `>` | インデント追加 | Indent |
| `<` | インデント削除 | Unindent |
| `=` | インデント整形 | Format indent |

## 💡 Tips

1. **数字との組み合わせ**: `3dd` = 3行削除、`5w` = 5単語進む
2. **リピート**: `.` で最後の操作を繰り返せる
3. **マクロ**: `q{文字}` で記録開始、`q` で終了、`@{文字}` で実行
4. **ジャンプリスト**: `Ctrl+o` で前の位置、`Ctrl+i` で次の位置
5. **ヘルプ**: `:h {キーワード}` でヘルプ表示

## 📝 コマンドモード

| コマンド | 機能 | 説明 |
|----------|------|------|
| `:w` | 保存 | Write |
| `:q` | 終了 | Quit |
| `:wq` / `:x` | 保存して終了 | Write and quit |
| `:q!` | 強制終了 | Force quit |
| `:e {file}` | ファイルを開く | Edit |
| `:bn` | 次のバッファ | Buffer next |
| `:bp` | 前のバッファ | Buffer previous |
| `:bd` | バッファ削除 | Buffer delete |
| `:%s/old/new/g` | 全置換 | Substitute all |
| `:set nu` | 行番号表示 | Show line numbers |
| `:noh` | 検索ハイライト解除 | No highlight |