Plugin changes

This commit is contained in:
Alexander Gehrke 2025-08-27 15:56:34 +02:00
parent 76a754de23
commit 523fedae4e
10 changed files with 289 additions and 210 deletions

View file

@ -0,0 +1,76 @@
return {
"jake-stewart/multicursor.nvim",
branch = "1.0",
config = function()
local mc = require("multicursor-nvim")
mc.setup()
local set = vim.keymap.set
-- Add or skip cursor above/below the main cursor.
set({ "n", "x" }, "<leader><up>", function()
mc.lineAddCursor(-1)
end)
set({ "n", "x" }, "<leader><down>", function()
mc.lineAddCursor(1)
end)
set({ "n", "x" }, "<leader><leader><up>", function()
mc.lineSkipCursor(-1)
end)
set({ "n", "x" }, "<leader><leader><down>", function()
mc.lineSkipCursor(1)
end)
-- Add or skip adding a new cursor by matching word/selection
set({ "n", "x" }, "<C-n>", function()
mc.matchAddCursor(1)
end)
set({ "n", "x" }, "<C-s>", function()
mc.matchSkipCursor(1)
end)
set({ "n", "x" }, "<C-S-n>", function()
mc.matchAddCursor(-1)
end)
set({ "n", "x" }, "<C-S-s>", function()
mc.matchSkipCursor(-1)
end)
-- Add and remove cursors with control + left click.
set("n", "<c-leftmouse>", mc.handleMouse)
set("n", "<c-leftdrag>", mc.handleMouseDrag)
set("n", "<c-leftrelease>", mc.handleMouseRelease)
-- Disable and enable cursors.
set({ "n", "x" }, "<c-q>", mc.toggleCursor)
-- Mappings defined in a keymap layer only apply when there are
-- multiple cursors. This lets you have overlapping mappings.
mc.addKeymapLayer(function(layerSet)
-- Select a different cursor as the main one.
layerSet({ "n", "x" }, "<leader>h", mc.prevCursor)
layerSet({ "n", "x" }, "<leader>l", mc.nextCursor)
-- Delete the main cursor.
layerSet({ "n", "x" }, "<leader>x", mc.deleteCursor)
-- Enable and clear cursors using escape.
layerSet("n", "<esc>", function()
if not mc.cursorsEnabled() then
mc.enableCursors()
else
mc.clearCursors()
end
end)
end)
-- Customize how cursors look.
local hl = vim.api.nvim_set_hl
hl(0, "MultiCursorCursor", { reverse = true })
hl(0, "MultiCursorVisual", { link = "Visual" })
hl(0, "MultiCursorSign", { link = "SignColumn" })
hl(0, "MultiCursorMatchPreview", { link = "Search" })
hl(0, "MultiCursorDisabledCursor", { reverse = true })
hl(0, "MultiCursorDisabledVisual", { link = "Visual" })
hl(0, "MultiCursorDisabledSign", { link = "SignColumn" })
end,
}