nvim: auto undo-break

This commit is contained in:
inkch
2025-08-20 15:02:45 +09:00
parent 59cc290bce
commit ae55a1cdde
2 changed files with 17 additions and 0 deletions

View File

@@ -20,3 +20,5 @@ vim.keymap.set('n', '<C-u>', '<C-u>zz')
vim.keymap.set('n', '<C-d>', '<C-d>zz')
vim.keymap.set('n', '<PageUp>', '<C-u>zz')
vim.keymap.set('n', '<PageDown>', '<C-d>zz')
vim.keymap.set("i", "<CR>", "<C-g>u<CR>")

View File

@@ -72,3 +72,18 @@ vim.opt.foldmethod = "indent"
vim.opt.foldenable = false
vim.opt.foldlevel = 99
vim.g.markdown_folding = 1 -- enable markdown folding
-- auto undo break (insert mode)
local function map_undobreak(chars)
local term = vim.api.nvim_replace_termcodes("<C-g>u", true, false, true)
for _, ch in ipairs(chars) do
vim.keymap.set("i", ch, function() return term .. ch end,
{ expr = true, silent = true, desc = "undobreak before '" .. ch .. "'" })
end
end
map_undobreak({
".", ",", "!", "?", ";", ":", ")", "]", "}", ">", -- 英文系
"。", "、", "", "", "", "", "", "", "」", "』", "" -- 和文系
})