local M = {} local function swap(key) vim.keymap.set({ "n", "v" }, key, "g" .. key, { buffer = true }) vim.keymap.set({ "n", "v" }, "g" .. key, key, { buffer = true }) end local function unswap(key) vim.keymap.del({ "n", "v" }, key) vim.keymap.del({ "n", "v" }, "g" .. key) end function M.enable() vim.opt.wrap = true swap("j") swap("k") swap("") swap("") swap("0") swap("$") end function M.disable() vim.opt.wrap = false unswap("j") unswap("k") unswap("") unswap("") unswap("0") unswap("$") end function M.toggle() if vim.opt.wrap == true then M.disable() else M.enable() end end return M