vim.g.mapleader=" " vim.g.maplocalleader=" " vim.keymap.set("n", "pv", vim.cmd.Ex) -- notes vim.keymap.set("n", "notes", ":e ~/stuff/notes/notes.md") --move highlighted stuffs vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") --keeps cursor at cur pos when stacking lines to single line vim.keymap.set("n", "J", "mzJ`z") --keeps cursur in middle with up down vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "N", "Nzzzv") --sets leader y to put in sys clipboard vim.keymap.set("n", "y", "\"+y") vim.keymap.set("v", "y", "\"+y") vim.keymap.set("n", "Y", "\"+Y") --paste but dont overwrite current register with selection vim.keymap.set("v", "p", "\"_dP") --nnoremap S :%s//g vim.keymap.set("n", "S", [[:%s//]]) vim.keymap.set('n', 'lw', ':set wrap!') --stay in indent mode vim.keymap.set('v', '<', '', '>gv', {noremap = true}) --reize with alt vim.keymap.set('n', '', ':resize -2') vim.keymap.set('n', '', ':resize +2') vim.keymap.set('n', '', ':vertical resize -2') vim.keymap.set('n', '', ':vertical resize +2') -- window management vim.keymap.set('n', 'v', 'v') vim.keymap.set('n', 'h', 's') vim.keymap.set('n', 'se', '=') vim.keymap.set('n', 'sx', ':close') -- navigate splits vim.keymap.set("n","","h") vim.keymap.set("n","","j") vim.keymap.set("n","","l") vim.keymap.set("n","","k") -- navigate tabs vim.keymap.set('n', 'to', ':tabnew') vim.keymap.set('n', 'tx', ':tabclose') vim.keymap.set('n', 'tn', ':tabn') vim.keymap.set('n', 'tp', ':tabp') -- make a error check thing for c vim.keymap.set("n", "ee", "oif err != nil {}Oreturn err") -- terminal niceites -- vim.keymap.set("n", "", ":", { desc = "Enter command mode" }) -- vim.keymap.set("v", "", ":", { desc = "Enter command mode (visual)" }) vim.keymap.set("t", "", "", { desc = "Exit terminal" }) --change cwd to directory of buffer or git master directory local function set_cwd() local fname = vim.fn.expand("%:p") if not fname:find("fugitive") and not fname:find("term") then -- no dot in filename vim.cmd('cd ' .. vim.fn.expand('%:p:h')) local gitroot = vim.fn.system("git rev-parse --show-toplevel") if string.find(gitroot, "fatal", 1, true) == nil then vim.cmd("cd " .. gitroot) end end end vim.keymap.set("n", "c", set_cwd, {}) vim.api.nvim_create_autocmd({ "BufEnter" }, { pattern = "*", callback = set_cwd }) -- auto closing para local function set_auto_close(doclose) if doclose==true then vim.keymap.set("i", "{", "{}ko"); vim.keymap.set("i", "(", "()i"); local filename = vim.api.nvim_buf_get_name(0) if string.find(filename,".*%.html$") then vim.keymap.set("i", "<", "<"); vim.keymap.set("i", ">", ">TahpFi"); vim.keymap.set("i", ">", ">"); end vim.keymap.set("i", "[", "[]i"); vim.keymap.set("i", "\"", "\"\"i"); vim.keymap.set("i", "'", "''i"); else vim.keymap.set("i", "{", "{"); vim.keymap.set("i", "(", "("); vim.keymap.set("i", "<", "<"); vim.keymap.set("i", ">", ">"); vim.keymap.set("i", "[", "["); vim.keymap.set("i", "\"", "\""); vim.keymap.set("i", "'", "'"); end end set_auto_close(true) local auto_close=true local function toggle_auto_close() if auto_close==true then auto_close=false else auto_close=true end set_auto_close(auto_close) end vim.keymap.set("n", "k", toggle_auto_close) -- update every buffer vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost" }, { pattern = "*", callback = function() --per file type log quick binds local cc_command="" local filename = vim.api.nvim_buf_get_name(0) set_auto_close(auto_close) if string.find(filename,".*%.js$") then cc_command="oconsole.log();V=$hi" elseif string.find(filename,".*%.lua$") then cc_command="oterm.print()V=$i" elseif string.find(filename,".*%.c$") then cc_command="oprintf(\"debug: %i\",);V=$hi" elseif string.find(filename,".*%.rs$") then cc_command="oprintln!(\"debug: {}\",);V=$hi" end vim.keymap.set("n", "cc", cc_command) end }) -- colemak rebinds local colemak_switch=false local colemak_tog = function() if colemak_switch==true then colemak_switch=false vim.keymap.set("n","d","d") vim.keymap.set("n","e","e") vim.keymap.set("n","f","f") vim.keymap.set("n","g","g") vim.keymap.set("n","i","i") vim.keymap.set("n","j","j") vim.keymap.set("n","k","k") vim.keymap.set("n","l","l") vim.keymap.set("n","n","n") vim.keymap.set("n","o","o") vim.keymap.set("n","p","p") vim.keymap.set("n","r","r") vim.keymap.set("n","s","s") vim.keymap.set("n","t","t") vim.keymap.set("n","u","u") vim.keymap.set("n","y","y") vim.keymap.set("n","D","D") vim.keymap.set("n","E","E") vim.keymap.set("n","F","F") vim.keymap.set("n","G","G") vim.keymap.set("n","I","I") vim.keymap.set("n","J","J") vim.keymap.set("n","K","K") vim.keymap.set("n","L","L") vim.keymap.set("n","N","N") vim.keymap.set("n","O","O") vim.keymap.set("n","P","P") vim.keymap.set("n","R","R") vim.keymap.set("n","S","S") vim.keymap.set("n","T","T") vim.keymap.set("n","U","U") vim.keymap.set("n","Y","Y") vim.keymap.set("v","d","d") vim.keymap.set("v","e","e") vim.keymap.set("v","f","f") vim.keymap.set("v","g","g") vim.keymap.set("v","i","i") vim.keymap.set("v","j","j") vim.keymap.set("v","k","k") vim.keymap.set("v","l","l") vim.keymap.set("v","n","n") vim.keymap.set("v","o","o") vim.keymap.set("v","p","p") vim.keymap.set("v","r","r") vim.keymap.set("v","s","s") vim.keymap.set("v","t","t") vim.keymap.set("v","u","u") vim.keymap.set("v","y","y") vim.keymap.set("v","D","D") vim.keymap.set("v","E","E") vim.keymap.set("v","F","F") vim.keymap.set("v","G","G") vim.keymap.set("v","I","I") vim.keymap.set("v","J","J") vim.keymap.set("v","K","K") vim.keymap.set("v","L","L") vim.keymap.set("v","N","N") vim.keymap.set("v","O","O") vim.keymap.set("v","P","P") vim.keymap.set("v","R","R") vim.keymap.set("v","S","S") vim.keymap.set("v","T","T") vim.keymap.set("v","U","U") vim.keymap.set("v","Y","Y") else colemak_switch=true vim.keymap.set("n","d","g") vim.keymap.set("n","e","k") vim.keymap.set("n","f","e") vim.keymap.set("n","g","t") vim.keymap.set("n","i","l") vim.keymap.set("n","j","y") vim.keymap.set("n","k","n") vim.keymap.set("n","l","u") vim.keymap.set("n","n","j") vim.keymap.set("n","o","p") vim.keymap.set("n","p","r") vim.keymap.set("n","r","s") vim.keymap.set("n","s","d") vim.keymap.set("n","t","f") vim.keymap.set("n","u","i") vim.keymap.set("n","y","o") vim.keymap.set("n","D","G") vim.keymap.set("n","E","K") vim.keymap.set("n","F","E") vim.keymap.set("n","G","T") vim.keymap.set("n","I","L") vim.keymap.set("n","J","Y") vim.keymap.set("n","K","N") vim.keymap.set("n","L","U") vim.keymap.set("n","N","J") vim.keymap.set("n","O","P") vim.keymap.set("n","P","R") vim.keymap.set("n","R","S") vim.keymap.set("n","S","D") vim.keymap.set("n","T","F") vim.keymap.set("n","U","I") vim.keymap.set("n","Y","O") vim.keymap.set("v","d","g") vim.keymap.set("v","e","k") vim.keymap.set("v","f","e") vim.keymap.set("v","g","t") vim.keymap.set("v","i","l") vim.keymap.set("v","j","y") vim.keymap.set("v","k","n") vim.keymap.set("v","l","u") vim.keymap.set("v","n","j") vim.keymap.set("v","o","p") vim.keymap.set("v","p","r") vim.keymap.set("v","r","s") vim.keymap.set("v","s","d") vim.keymap.set("v","t","f") vim.keymap.set("v","u","i") vim.keymap.set("v","y","o") vim.keymap.set("v","D","G") vim.keymap.set("v","E","K") vim.keymap.set("v","F","E") vim.keymap.set("v","G","T") vim.keymap.set("v","I","L") vim.keymap.set("v","J","Y") vim.keymap.set("v","K","N") vim.keymap.set("v","L","U") vim.keymap.set("v","N","J") vim.keymap.set("v","O","P") vim.keymap.set("v","P","R") vim.keymap.set("v","R","S") vim.keymap.set("v","S","D") vim.keymap.set("v","T","F") vim.keymap.set("v","U","I") vim.keymap.set("v","Y","O") end end vim.keymap.set("n", "r", colemak_tog)