diff options
Diffstat (limited to 'nvim/.config')
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/keymaps.lua | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/keymaps.lua b/nvim/.config/nvim/lua/tobyvin/keymaps.lua index 8afa44d..663a017 100644 --- a/nvim/.config/nvim/lua/tobyvin/keymaps.lua +++ b/nvim/.config/nvim/lua/tobyvin/keymaps.lua @@ -13,24 +13,20 @@ vim.keymap.set({ "n", "v" }, "<leader>Y", [["+Y]], { desc = "yank lines into sel vim.keymap.set({ "n", "v" }, "<leader>p", [["+p]], { desc = "put lines from selection register" }) vim.keymap.set({ "n", "v" }, "<leader>P", [["+P]], { desc = "put lines from selection register" }) -vim.keymap.set({ "i", "s" }, "<Tab>", function() - if vim.snippet.jumpable(1) then - return "<cmd>lua vim.snippet.jump(1)<cr>" - else - return "<Tab>" +vim.keymap.set("o", "o", function() + 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) + end, 0) end +end, { desc = "buffer text object" }) + +vim.keymap.set({ "i", "s" }, "<Tab>", function() + return vim.snippet.jumpable(1) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>" end, { expr = true }) vim.keymap.set({ "i", "s" }, "<S-Tab>", function() - if vim.snippet.jumpable(-1) then - return "<cmd>lua vim.snippet.jump(-1)<cr>" - else - return "<Tab>" - end + return vim.snippet.jumpable(-1) and "<cmd>lua vim.snippet.jump(-1)<cr>" or "<Tab>" end, { expr = true }) - -vim.keymap.set("n", "gqq", function() - local cursor = vim.api.nvim_win_get_cursor(0) - vim.cmd.normal("gggqG") - vim.api.nvim_win_set_cursor(0, cursor) -end, { desc = "format buffer" }) |