aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim/.config
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2024-08-30 16:13:05 -0500
committerToby Vincent <tobyv@tobyvin.dev>2024-08-30 16:13:05 -0500
commit39ba89e0eaee634e8d69b54d14efa0040b4c1c42 (patch)
treeeeb7c3537e4f2c97b937aae23fd37c8ffa525392 /nvim/.config
parent0b7c7dc4038f0e9049cfd2424ae358b17e3c63a7 (diff)
fix(nvim): restore visual marks after 'o' motion
Diffstat (limited to 'nvim/.config')
-rw-r--r--nvim/.config/nvim/lua/tobyvin/keymaps.lua4
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" })