From 4e2a9c48091fb088b422ec5bfbe04dfe934339d9 Mon Sep 17 00:00:00 2001 From: moons-14 Date: Wed, 11 Mar 2026 21:07:32 +0900 Subject: [PATCH] nixvim: add undofile, scrolloff, wrap, yank highlight, j/k optimization Co-Authored-By: Claude Sonnet 4.6 --- modules/home/nixvim/autocmds.nix | 8 ++++++++ modules/home/nixvim/default.nix | 1 + modules/home/nixvim/keymaps.nix | 17 +++++++++++++++++ modules/home/nixvim/options.nix | 6 ++++++ 4 files changed, 32 insertions(+) create mode 100644 modules/home/nixvim/autocmds.nix diff --git a/modules/home/nixvim/autocmds.nix b/modules/home/nixvim/autocmds.nix new file mode 100644 index 0000000..4e8a2ec --- /dev/null +++ b/modules/home/nixvim/autocmds.nix @@ -0,0 +1,8 @@ +{...}: { + programs.nixvim.autoCmd = [ + { + event = "TextYankPost"; + callback.__raw = "function() vim.highlight.on_yank() end"; + } + ]; +} diff --git a/modules/home/nixvim/default.nix b/modules/home/nixvim/default.nix index 6585c9a..6058473 100644 --- a/modules/home/nixvim/default.nix +++ b/modules/home/nixvim/default.nix @@ -6,6 +6,7 @@ imports = [ inputs.nixvim.homeModules.nixvim ./options.nix + ./autocmds.nix ./keymaps.nix ./language.nix ./colorscheme.nix diff --git a/modules/home/nixvim/keymaps.nix b/modules/home/nixvim/keymaps.nix index b27ed57..77a44f6 100644 --- a/modules/home/nixvim/keymaps.nix +++ b/modules/home/nixvim/keymaps.nix @@ -19,6 +19,23 @@ }; in { programs.nixvim.keymaps = [ + # Search + (mk "" "nohlsearch" "検索ハイライトを解除") + + # Screen line movement + { + mode = "n"; + key = "j"; + action.__raw = "vim.v.count == 0 and 'gj' or 'j'"; + options = { silent = true; expr = true; desc = "下へ移動(画面行優先)"; }; + } + { + mode = "n"; + key = "k"; + action.__raw = "vim.v.count == 0 and 'gk' or 'k'"; + options = { silent = true; expr = true; desc = "上へ移動(画面行優先)"; }; + } + # LSP (mkRaw "K" "vim.lsp.buf.hover" "LSPエラーのホバー表示") (mk "gd" "Glance definitions" "定義へ移動") diff --git a/modules/home/nixvim/options.nix b/modules/home/nixvim/options.nix index ad68608..889b2f9 100644 --- a/modules/home/nixvim/options.nix +++ b/modules/home/nixvim/options.nix @@ -11,6 +11,12 @@ mouse = "a"; clipboard = "unnamedplus"; updatetime = 200; + timeoutlen = 300; + undofile = true; + + # display + wrap = false; + scrolloff = 8; # search ignorecase = true;