local lib = require('mango.lib') local remap = lib.remap vim.g.mapleader = ' ' -- Make adjustments for my custom keyboard layout remap('nov', '€', '$') -- Better frame navigation remap('n', '', 'h') remap('n', '', 'j') remap('n', '', 'k') remap('n', '', 'l') -- I prefer visual-line mode on ‘V’ remap('n', 'V', '') remap('n', '', 'V') -- Move selections up and down remap('v', '', ":m '<-2gv=gv") remap('v', '', ":m '>+1gv=gv") -- Don’t move cursor with various commands remap('n', 'J', 'mzJ`z') remap('n', '', 'zz') remap('n', '', 'zz') remap('n', 'n', 'nzzzv') remap('n', 'N', 'Nzzzv') -- Swap the jump-to-mark bindings remap('nv', "'", '`') remap('nv', '`', "'") -- Transpose characters; for some reason it has a noticable delay if I just give -- a string instead of lambda functions remap('n', 't', function() vim.cmd.normal('"zx"zp') end) remap('n', 'T', function() vim.cmd.normal('"zX"zp') end) -- Open netrw quickly remap('n', '-', ':Ex') -- Open netrw in a vertical- or horizontal split. The split is made manually -- instead of by using :Vexplore or :Sexplore so that it’s made on the right or -- bottom instead of the left or top remap('n', '–', ':vsplit | Ex') remap('n', 'g–', ':split | Ex') remap('n', 's', function() vim.cmd('vsplit') lib.scratch_buffer() end) remap('n', 'S', function() vim.cmd('split') lib.scratch_buffer() end)