return { "brenton-leighton/multiple-cursors.nvim", event = 'VimEnter', cmd = { "MultipleCursorsAddDown", "MultipleCursorsAddUp", "MultipleCursorsMouseAddDelete", "MultipleCursorsAddMatches", "MultipleCursorsAddMatchesV", "MultipleCursorsAddJumpNextMatch", "MultipleCursorsJumpNextMatch", "MultipleCursorsLock", }, dependencies = { "AstroNvim/astrocore", opts = function(_, opts) local maps = opts.mappings for lhs, map in pairs { [""] = { "MultipleCursorsAddDown", desc = "Add cursor down" }, [""] = { "MultipleCursorsAddUp", desc = "Add cursor up" }, [""] = { "MultipleCursorsMouseAddDelete", desc = "Add cursor with mouse" }, } do maps.n[lhs] = map maps.i[lhs] = map end local prefix = "c" for lhs, map in pairs { [prefix .. "a"] = { "MultipleCursorsAddMatches", desc = "Add cursor matches" }, [prefix .. "A"] = { "MultipleCursorsAddMatchesV", desc = "Add cursor matches in previous visual area" }, [prefix .. "j"] = { "MultipleCursorsAddJumpNextMatch", desc = "Add cursor and jump to next match" }, [prefix .. "J"] = { "MultipleCursorsJumpNextMatch", desc = "Move cursor to next match" }, [prefix .. "l"] = { "MultipleCursorsLock", desc = "Lock virtual cursors" }, } do maps.n[lhs] = map maps.x[lhs] = map end end, }, opts = {}, }