vim.g.mapleader = " " vim.keymap.set("n", "e", ":NvimTreeFindFileToggle") vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") vim.keymap.set("n", "J", "mzJ`z") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "N", "Nzzzv") -- greatest remap ever vim.keymap.set("x", "p", [["_dP]]) -- next greatest remap ever : asbjornHaland vim.keymap.set({"n", "v"}, "y", [["+y]]) vim.keymap.set("n", "Y", [["+Y]]) vim.keymap.set({"n", "v"}, "d", [["_d]]) -- This is going to get me cancelled vim.keymap.set("i", "", "") vim.keymap.set("n", "Q", "") vim.keymap.set("n", "", "silent !tmux neww tmux-sessionizer") vim.keymap.set("n", "f", vim.lsp.buf.format) vim.keymap.set("n", "", "cnextzz") vim.keymap.set("n", "", "cprevzz") vim.keymap.set("n", "j", "lnextzz") vim.keymap.set("n", "k", "lprevzz") vim.keymap.set("n", "s", [[:%s/\<\>//gI]]) vim.keymap.set("n", "x", "!chmod +x %", { silent = true }) vim.keymap.set("n", "", function() vim.cmd("so") end) -- Keybindings for navigating tabs vim.keymap.set("n", ".", function() vim.cmd("tabn") end, {}) vim.keymap.set("n", "", function() vim.cmd("tabn") end, {}) vim.keymap.set("n", ",", function() vim.cmd("tabp") end, {}) vim.keymap.set("n", "tc", function() vim.cmd("tabc") end, {}) vim.keymap.set("n", "tt", function() vim.cmd("tabnew") end, {}) vim.keymap.set("n", "<", function() vim.cmd("tabfirst") end, {}) vim.keymap.set("n", ">", function() vim.cmd("tablast") end, {}) -- Keybinding for deleting the current buffer using :bd vim.keymap.set("n", "bd", function() vim.cmd("bd") end, {}) -- Keybding for cycling through the list of buffers vim.keymap.set("n", "bn", function() vim.cmd("bn") end, {}) vim.keymap.set("n", "bp", function() vim.cmd("bp") end, {}) -- Define a function to execute the appropriate program based on file type vim.keymap.set("n", "/", function() local filetype = vim.bo.filetype local app = "" if filetype == "javascript" then app = "node" elseif filetype == "typescript" then app = "ts-node" elseif filetype == "lua" then app = "lua" elseif filetype == "python" then app = "python" elseif filetype == "rust" then app = "cargo run" elseif filetype == "go" then app = "go run" else print("Unsupported file type: " .. filetype) return end vim.cmd("terminal " .. app .. " %") end, { noremap = true, silent = true })