nvim: auto undo-break
This commit is contained in:
@@ -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>")
|
||||
|
@@ -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({
|
||||
".", ",", "!", "?", ";", ":", ")", "]", "}", ">", -- 英文系
|
||||
"。", "、", "!", "?", ";", ":", ")", "]", "」", "』", ">" -- 和文系
|
||||
})
|
||||
|
Reference in New Issue
Block a user