-- NOTE: Revisit Later return { multicursor = function() return { {'i', 'k', mode = {'n'}}, {'', 'MultipleCursorsAddUp', mode = {'n', 'x'}, desc = 'Add cursor and move up'}, {'', 'MultipleCursorsAddDown', mode = {'n', 'x'}, desc = 'Add cursor and move down'}, {'', 'MultipleCursorsMouseAddDelete', mode = {'n', 'i'}, desc = 'Add or remove cursor'}, -- {'m', 'MultipleCursorsAddVisualArea', mode = {'x'}, desc = 'Add cursors to the lines of the visual area'}, {'a', 'MultipleCursorsAddMatches', mode = {'n', 'x'}, desc = 'Add cursors to cword'}, {'A', 'MultipleCursorsAddMatchesV', mode = {'n', 'x'}, desc = 'Add cursors to cword in previous area'}, {'', 'MultipleCursorsAddJumpNextMatch', mode = {'n', 'x'}, desc = 'Add cursor and jump to next cword'}, -- {'q', 'MultipleCursorsJumpNextMatch', mode = {'n', 'x'}, desc = 'Jump to next cword'}, -- {'Q', 'MultipleCursorsJumpPrevMatch', mode = {'n', 'x'}, desc = 'Jump to next cword'}, -- {'l', 'MultipleCursorsLock', mode = {'n', 'x'}, desc = 'Lock virtual cursors'}, } end, multicursor_custom = function() return { {{'n', 'x' }, 'i', function() local pos = vim.api.nvim_win_get_cursor(0) vim.api.nvim_win_set_cursor(0, {math.max(pos[1] - 1, 1), pos[2]}) end}, {{'n', 'x' }, 'j', function() local pos = vim.api.nvim_win_get_cursor(0) vim.api.nvim_win_set_cursor(0, {pos[1], math.max(pos[2] - 1, 0)}) end}, {{'n', 'x' }, 'k', function() local pos = vim.api.nvim_win_get_cursor(0) local lines = vim.api.nvim_buf_line_count(0) vim.api.nvim_win_set_cursor(0, {math.min(pos[1] + 1, lines), pos[2]}) end}, {{'n', 'x' }, 'h', function() vim.cmd('startinsert') end}, } end }