diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2024-08-30 16:13:05 -0500 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2024-08-30 16:13:05 -0500 |
commit | 39ba89e0eaee634e8d69b54d14efa0040b4c1c42 (patch) | |
tree | eeb7c3537e4f2c97b937aae23fd37c8ffa525392 /nvim/.config | |
parent | 0b7c7dc4038f0e9049cfd2424ae358b17e3c63a7 (diff) |
fix(nvim): restore visual marks after 'o' motion
Diffstat (limited to 'nvim/.config')
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/keymaps.lua | 4 |
1 files changed, 4 insertions, 0 deletions
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", "<C-S>", 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" }) |