return { "kylechui/nvim-surround", version = "*", event = "VeryLazy", init = function() -- Disable default keymaps (we'll set custom ones) vim.g.nvim_surround_no_mappings = true end, config = function() require("nvim-surround").setup({ -- Configuration for surrounds, aliases, etc. can go here }) -- Set custom keymaps (v4 method) -- Add surrounding: Siw" -> surround word with quotes, Siw) -> (surround word) vim.keymap.set("n", "S", "(nvim-surround-normal)", { desc = "Add surrounding", }) -- Delete surrounding: SD" -> remove quotes, SD) -> remove parentheses vim.keymap.set("n", "SD", "(nvim-surround-delete)", { desc = "Delete surrounding", }) -- Change surrounding: SC"' -> change quotes to single quotes, SC)] -> change parens to brackets vim.keymap.set("n", "SC", "(nvim-surround-change)", { desc = "Change surrounding", }) -- Change surrounding on current line vim.keymap.set("n", "SCL", "(nvim-surround-change-line)", { desc = "Change surrounding on current line", }) -- Visual mode: select text and press S" -> surround selection with quotes vim.keymap.set("v", "S", "(nvim-surround-visual)", { desc = "Add surrounding in visual mode", }) end, }