{...}: let mk = key: action: desc: { mode = "n"; inherit key action; options = { silent = true; inherit desc; }; }; mkRaw = key: raw: desc: { mode = "n"; key = key; action.__raw = raw; options = { silent = true; desc = desc; }; }; in { programs.nixvim.keymaps = [ # LSP (mkRaw "K" "vim.lsp.buf.hover" "LSPエラーのホバー表示") (mkRaw "gd" "vim.lsp.buf.definition" "定義へ移動") (mkRaw "gr" "vim.lsp.buf.references" "参照を表示") (mkRaw "rn" "vim.lsp.buf.rename" "シンボル名を一括変換") (mkRaw "cf" "function() require('conform').format({ timeout_ms = 1000, lsp_format = 'fallback' }) end" "コードをフォーマット") (mkRaw "ca" "function() vim.lsp.buf.code_action({ context = { diagnostics = vim.diagnostic.get(0, { lnum = vim.fn.line('.') - 1 }) } }) end" "コードアクション") # Diagnostics (mkRaw "]d" "vim.diagnostic.goto_next" "次のエラー") (mkRaw "[d" "vim.diagnostic.goto_prev" "前のエラー") (mkRaw "dl" "vim.diagnostic.open_float" "エラー詳細") # File tree (mk "e" "Neotree toggle left" "ファイルツリー") # Terminal (mk "tt" "ToggleTerm direction=float" "ターミナル") # Diagnostics list (mk "xx" "Trouble diagnostics toggle" "エラー一覧") # Window navigation (mk "" "h" "左のウィンドウへ") (mk "" "j" "下のウィンドウへ") (mk "" "k" "上のウィンドウへ") (mk "" "l" "右のウィンドウへ") # Buffer Bar (mk "[b" "BufferPrevious" "前のバッファーに移動") (mk "]b" "BufferNext" "後のバッファーに移動") (mk "bc" "BufferClose" "バッファーを削除") # Git (mk "gl" "LazyGit" "LazyGitを開く") (mk "gd" "DiffviewOpen" "差分を開く") (mk "gH" "DiffviewFileHistory" "リポジトリ履歴") (mk "gh" "DiffviewFileHistory %" "ファイル履歴") (mk "gq" "DiffviewClose" "差分を閉じる") # UFO (folding) (mkRaw "zR" "require('ufo').openAllFolds" "全て展開") (mkRaw "zM" "require('ufo').closeAllFolds" "全て折りたたむ") # Dropbar (mkRaw "dp" "function() require('dropbar.api').pick() end" "dropbarでナビゲート") # Telescope (explicit form for reliability) (mkRaw "ff" "function() require('telescope.builtin').find_files() end" "ファイルを探す") (mkRaw "fg" "function() require('telescope.builtin').live_grep() end" "文字列を全文検索") (mkRaw "fb" "function() require('telescope.builtin').buffers() end" "開いているバッファを探す") (mkRaw "fh" "function() require('telescope.builtin').help_tags() end" "ヘルプ項目を探す") ]; }