diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index e96c9d92..4b4e96ca 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -111,7 +111,25 @@ end map("n", "uf", require("lazyvim.plugins.lsp.format").toggle, { desc = "Toggle format on Save" }) map("n", "us", function() Util.toggle("spell") end, { desc = "Toggle Spelling" }) map("n", "uw", function() Util.toggle("wrap") end, { desc = "Toggle Word Wrap" }) -map("n", "ul", function() Util.toggle("relativenumber", true) Util.toggle("number") end, { desc = "Toggle Line Numbers" }) +local saved_numbering +local function save_numbering() + local force_enabled = not vim.opt_local.number:get() and not vim.opt_local.relativenumber:get() + saved_numbering = { + number = force_enabled or vim.opt_local.number:get(), + relativenumber = force_enabled or vim.opt_local.relativenumber:get(), + } +end +save_numbering() +map("n", "ul", function() + if vim.opt_local.number:get() or vim.opt_local.relativenumber:get() then + save_numbering() + Util.toggle("number", false, { false }) + Util.toggle("relativenumber", false, { false }) + else + Util.toggle("number", false, { saved_numbering.number }) + Util.toggle("relativenumber", false, { saved_numbering.relativenumber }) + end +end, { desc = "Toggle Line Numbers" }) map("n", "ud", Util.toggle_diagnostics, { desc = "Toggle Diagnostics" }) local conceallevel = vim.o.conceallevel > 0 and vim.o.conceallevel or 3 map("n", "uc", function() Util.toggle("conceallevel", false, {0, conceallevel}) end, { desc = "Toggle Conceal" })