dotfiles/env/.config/nvim/lua/yourmom/remap.lua

301 lines
9.5 KiB
Lua
Executable File

vim.g.mapleader=" "
vim.g.maplocalleader=" "
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
-- notes
vim.keymap.set("n", "<leader>notes", ":e ~/stuff/notes/notes.md<CR>")
--move highlighted stuffs
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=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", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>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", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>Y", "\"+Y")
--paste but dont overwrite current register with selection
vim.keymap.set("v", "<leader>p", "\"_dP")
--nnoremap S :%s//g<left><left>
vim.keymap.set("n", "S", [[:%s//<Left>]])
vim.keymap.set('n', '<leader>lw', '<cmd>:set wrap!<CR>')
--stay in indent mode
vim.keymap.set('v', '<', '<gv', {noremap = true})
vim.keymap.set('v', '>', '>gv', {noremap = true})
--reize with alt
vim.keymap.set('n', '<A-k>', ':resize -2<CR>')
vim.keymap.set('n', '<A-j>', ':resize +2<CR>')
vim.keymap.set('n', '<A-h>', ':vertical resize -2<CR>')
vim.keymap.set('n', '<A-l>', ':vertical resize +2<CR>')
-- window management
vim.keymap.set('n', '<leader>v', '<C-w>v')
vim.keymap.set('n', '<leader>h', '<C-w>s')
vim.keymap.set('n', '<leader>se', '<C-w>=')
vim.keymap.set('n', '<leader>sx', ':close<CR>')
-- navigate splits
vim.keymap.set("n","<C-h>","<C-w>h")
vim.keymap.set("n","<C-j>","<C-w>j")
vim.keymap.set("n","<C-l>","<C-w>l")
vim.keymap.set("n","<C-k>","<C-w>k")
-- navigate tabs
vim.keymap.set('n', '<leader>to', ':tabnew<CR>')
vim.keymap.set('n', '<leader>tx', ':tabclose<CR>')
vim.keymap.set('n', '<leader>tn', ':tabn<CR>')
vim.keymap.set('n', '<leader>tp', ':tabp<CR>')
-- make a error check thing for c
vim.keymap.set("n", "<leader>ee", "oif err != nil {<CR>}<Esc>Oreturn err<Esc>")
-- terminal niceites
-- vim.keymap.set("n", "<C-;>", ":", { desc = "Enter command mode" })
-- vim.keymap.set("v", "<C-;>", ":", { desc = "Enter command mode (visual)" })
vim.keymap.set("t", "<C-e>", "<C-\\><C-n>", { 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", "<leader>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", "{", "{<CR>}<Esc>ko");
vim.keymap.set("i", "(", "()<Esc>i");
local filename = vim.api.nvim_buf_get_name(0)
if string.find(filename,".*%.html$") then
vim.keymap.set("i", "<", "<");
vim.keymap.set("i", ">", "><Esc>T<yef>a</><Esc>hpF<i");
else
vim.keymap.set("i", "<", "<><Esc>i");
vim.keymap.set("i", ">", ">");
end
vim.keymap.set("i", "[", "[]<Esc>i");
vim.keymap.set("i", "\"", "\"\"<Esc>i");
vim.keymap.set("i", "'", "''<Esc>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", "<leader>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();<Esc>V=$hi"
elseif string.find(filename,".*%.lua$") then
cc_command="oterm.print()<Esc>V=$i"
elseif string.find(filename,".*%.c$") then
cc_command="oprintf(\"debug: %i\",);<Esc>V=$hi"
elseif string.find(filename,".*%.rs$") then
cc_command="oprintln!(\"debug: {}\",);<Esc>V=$hi"
end
vim.keymap.set("n", "<leader>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", "<leader>r", colemak_tog)