{...}: 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" "vim.lsp.buf.format" "コードをフォーマット") # File tree (mk "e" "Neotree toggle left" "ファイルツリー") # Terminal (mk "tt" "ToggleTerm direction=float" "ターミナル") # Diagnostics (mk "xx" "Trouble diagnostics toggle" "エラー一覧") # Buffer Bar (mk "bh" "BufferPrevious" "前のバッファーに移動") (mk "bl" "BufferNext" "後のバッファーに移動") (mk "bc" "BufferClose" "バッファーを削除") ]; }