Skip to content

Vim操作マニュアル

このドキュメントは、本プロジェクトで設定されている .vimrc に基づく操作ガイドです。

基本設定

  • 文字コード: UTF-8 (自動判別: UTF-8, EUC-JP, CP932)
  • 改行コード: UNIX (LF) 優先
  • インデント: スペース2個 (タブをスペースに展開)
  • 検索: インクリメンタルサーチ、大文字小文字スマート区別、ハイライト表示
  • 行番号: 表示
  • マウス: 有効

基本キーマップ

キー 動作 モード
, リーダーキー (mapleader) -
\ , (リーダー) として機能 -
<C-s> ファイル保存 ノーマル / 挿入
ESC ESC 検索ハイライトをオフに切り替え ノーマル
j / k 表示行単位で移動 (折り返し対応) ノーマル
[b / ]b 前 / 次のバッファへ移動 ノーマル
[B / ]B 最初 / 最後のバッファへ移動 ノーマル
<C-p> 上に移動 挿入
<C-n> 下に移動 挿入
<C-b> 左に移動 挿入
<C-f> 右に移動 挿入
gt 次のタブへ移動 ノーマル
gT 前のタブへ移動 ノーマル

ファイル・バッファ操作

コマンド 動作
:tabnew 新しいタブを開く
:tabe [ファイル名] 指定したファイルを新しいタブで開く
:tabclose 現在のタブを閉じる
:e! 現在のバッファを破棄してディスクから強制的に再読み込みする

開発機能 (Plugins)

coc.nvim (入力補完・LSP)

キー 動作
TAB 補完候補の選択 / 次へ
S-TAB 補完候補の逆選択
ENTER 補完の確定
K カーソル下のドキュメント表示
gd 定義へジャンプ
gy 型定義へジャンプ
gi 実装へジャンプ
gr 参照元を表示
[g / ]g 前 / 次の診断メッセージへ移動
<leader>rn シンボルのリネーム
<leader>f 選択範囲をフォーマット
<leader>qf クイックフィックス実行
<leader>ac カーソル位置でコードアクション実行
<space>a 診断一覧を表示
<space>o アウトライン表示
<space>c コマンド一覧を表示

vim-fugitive (Git)

キー 動作
<leader>gs git status 表示
<leader>ga git add % (現在のファイルをアッド)
<leader>gc git commit
<leader>gp git push
<leader>gd git diff
<leader>gb git blame

vimspector (デバッグ)

キー 動作
<leader>dd デバッグ開始
<leader>de デバッグ終了 (Reset)
<leader>dc 続行 (Continue)
<leader>dt ブレークポイント切り替え
<leader>dT 全ブレークポイント解除
<leader>dj ステップオーバー
<leader>dl ステップイン
<leader>dh ステップアウト
<leader>dk 再起動

vim-test (テスト実行)

キー 動作
<leader>t 最も近いテストを実行
<leader>T 現在のファイルのテストを実行
<leader>a 全テストを実行 (TestSuite)
<leader>l 最後に実行したテストを再実行
<leader>g 最後に実行したテストファイルを開く

vim-go (Go開発)

キー 動作
<leader>b ビルド (テストファイルならテスト実行)
<leader>r 実行 (go run)
<leader>t テスト実行
<leader>c カバレッジ表示切り替え
<C-n> / <C-m> クイックフィックスの次/前へ移動

rust.vim (Rust開発)

  • 自動フォーマット: 保存時に rustfmt が自動実行されます。

.NET 開発

  • OmniSharp: .NET (C#) 用の開発支援プラグインが導入されています。
  • シンタックスハイライト: OrangeT/vim-csharp により C# 構文がサポートされます。
  • LSP連携: nix develop .#dotnet 環境下で、coc.nvim と組み合わせて利用可能です。

Ruby 開発

  • 基本設定: インデントがスペース2個に自動設定されます。
  • LSP連携: nix develop .#ruby 環境下で、solargraph を使用した補完が利用可能です。

PHP 開発

  • シンタックスハイライト: php.vim により最新の PHP 構文がサポートされます。
  • リファクタリング: phpactor により、クラスの移動やインターフェースの実装などのリファクタリング支援が受けられます。
  • 基本設定: インデントがスペース4個に自動設定されます。

Haskell 開発

  • シンタックスハイライト: neovimhaskell/haskell-vim により Haskell 構文が高度にサポートされます。
  • LSP連携: nix develop .#haskell 環境下で、haskell-language-server が利用可能です。coc-haskell 等の導入を推奨します。

Java 開発

  • シンタックスハイライト: uiiaoo/java-syntax.vim により Java 構文のハイライトが強化されています。
  • LSP連携: nix develop .#java 環境下で、coc-java などの CoC 拡張機能を導入することで高度な開発が可能です。

Clojure 開発

  • Conjure: Clojure (および Lisp 系言語) 用の高度な対話型開発環境です。バッファ内のコードを即座に REPL で評価できます。
  • Fireplace: REPL と連携した開発支援を提供します。
  • シンタックスハイライト: clojure.vim により Clojure 構文がサポートされます。

Elixir 開発

  • シンタックスハイライト: vim-elixir により Elixir 構文と mix フォーマッタとの連携がサポートされます。
  • LSP連携: nix develop .#elixir 環境下で、elixir-ls を使用した高度な開発が可能です。

Scala 開発

  • シンタックスハイライト: vim-scala により Scala 構文がサポートされます。
  • LSP連携: nix develop .#scala 環境下で、Metals を使用した高度な開発が可能です。

F# 開発

  • Ionide-vim: F# 用の高度な開発支援プラグインです。
  • シンタックスハイライト: ionide/ionide-vim により F# 構文がサポートされます。
  • LSP連携: nix develop .#dotnet 環境下で、ionide-vim による高度な開発支援(補完、定義ジャンプ等)が利用可能です。

CtrlP (ファイル検索・セレクタ)

キー 動作
<C-p> ファイル検索 (プロジェクト内)
:CtrlPFunky 関数一覧から検索
:CtrlPCommandLine コマンド履歴から検索

その他

  • GitHub Copilot: github/copilot.vim が有効化されています。
  • vim-airline: ステータスライン、タブラインが表示されます。
  • indentLine: インデントが可視化されます。
  • vim-trailing-whitespace: 末尾の余分な空白をハイライトします。