From 39ba89e0eaee634e8d69b54d14efa0040b4c1c42 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Fri, 30 Aug 2024 16:13:05 -0500 Subject: fix(nvim): restore visual marks after 'o' motion --- nvim/.config/nvim/lua/tobyvin/keymaps.lua | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'nvim/.config') diff --git a/nvim/.config/nvim/lua/tobyvin/keymaps.lua b/nvim/.config/nvim/lua/tobyvin/keymaps.lua index b578365..343cbd3 100644 --- a/nvim/.config/nvim/lua/tobyvin/keymaps.lua +++ b/nvim/.config/nvim/lua/tobyvin/keymaps.lua @@ -23,11 +23,15 @@ vim.keymap.set("n", "grr", vim.lsp.buf.references, { desc = "vim.lsp.buf.referen vim.keymap.set("i", "", vim.lsp.buf.signature_help, { desc = "vim.lsp.buf.signature_help()" }) vim.keymap.set("o", "o", function() + local v_left = vim.api.nvim_buf_get_mark(0, "<") + local v_right = vim.api.nvim_buf_get_mark(0, ">") local cursor = vim.fn.winsaveview() vim.cmd.normal({ "ggVG", bang = true, mods = { keepjumps = true } }) if cursor and not string.find(vim.v.operator, "[cd]") then vim.defer_fn(function() vim.fn.winrestview(cursor) + vim.api.nvim_buf_set_mark(0, "<", v_left[1], v_left[2], {}) + vim.api.nvim_buf_set_mark(0, ">", v_right[1], v_right[2], {}) end, 0) end end, { desc = "buffer text object" }) -- cgit v1.2.3-70-g09d2