vim.g.mapleader = " " vim.keymap.set("n", "e", "Oil --float") vim.keymap.set("n", "n", "set nu!") vim.keymap.set("n", "rn", "set rnu!") vim.keymap.set("n", "", "nohl") vim.keymap.set("n", "x", "bd") vim.keymap.set("n", "fb", "=ap") vim.keymap.set("n", "", "!chmod 755 %", { silent = true }) vim.keymap.set("n", "", "ddp") vim.keymap.set("n", "", "ddkP") vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") vim.keymap.set("n", "sl", "exec \"normal i\".nr2char(getchar()).\"\\e\"") vim.keymap.set("n", "sc", "exec \"normal a\".nr2char(getchar()).\"\\e\"") -- u/soer9459 vim.keymap.set('n', ',', function() local cursor = vim.api.nvim_win_get_cursor(0) vim.cmd('norm A;') vim.api.nvim_win_set_cursor(0, cursor) end, { noremap = true, silent = true }) -- Switch between windows vim.keymap.set("n", "", "h") vim.keymap.set("n", "", "l") vim.keymap.set("n", "", "j") vim.keymap.set("n", "", "k") vim.keymap.set("n", "", "w") -- Switch between panes vim.keymap.set("n", "", "TmuxNavigateLeft") vim.keymap.set("n", "", "TmuxNavigateRight") vim.keymap.set("n", "", "TmuxNavigateDown") vim.keymap.set("n", "", "TmuxNavigateUp") -- Cellular Automaton vim.keymap.set("n", "gol", "CellularAutomaton game_of_life") -- Color picker vim.keymap.set("n", "cc", "CccPick") -- VimTex vim.keymap.set("n", "ll", "VimtexCompile") vim.keymap.set("n", "vl", "VimtexView") -- Go vim.keymap.set("n", "gj", "GoTagAdd json") vim.keymap.set("n", "gy", "GoTagAdd yaml") vim.keymap.set("n", "ge", "GoIfErr") vim.keymap.set("n", "gt", "GoMod tidy") -- Screenkey vim.keymap.set("n", "sk", "Screenkey") -- Telescope vim.keymap.set('n', 'ff', "Telescope find_files", {}) vim.keymap.set('n', 'fw', "Telescope live_grep", {}) vim.keymap.set('n', 'fo', "Telescope buffers", {}) vim.keymap.set('n', 'fh', "Telescope help_tags", {}) vim.keymap.set('n', 'fz', "Telescope current_buffer_fuzzy_find", {}) vim.keymap.set('n', 'fg', "Telescope git_files", {}) vim.keymap.set('n', 'fd', "Telescope diagnostics", {}) vim.keymap.set('n', 'ft', function() local telescope = require("telescope.builtin") local todo_files = {} local handle = io.popen("rg --files -g 'TODO.{md,txt}'") local result = handle:read("*a") handle:close() for file in result:gmatch("[^\r\n]+") do table.insert(todo_files, file) end if #todo_files > 0 then telescope.find_files({ prompt_title = "Choose TODO file", cwd = vim.fn.getcwd(), search_dirs = todo_files }) else telescope.grep_string({ search = "TODO" }) end end, { noremap = true, silent = true }) -- Diagnostics, LSP vim.keymap.set('n', 'gl', 'lua vim.diagnostic.open_float()') vim.keymap.set('n', '[d', 'lua vim.diagnostic.goto_prev()') vim.keymap.set('n', ']d', 'lua vim.diagnostic.goto_next()') vim.api.nvim_create_autocmd('LspAttach', { desc = 'LSP actions', callback = function(event) local opts = { buffer = event.buf } vim.keymap.set('n', 'gh', 'lua vim.diagnostic.goto_next({ float = { border = "rounded" } })', opts) vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()', opts) vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) vim.keymap.set('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) vim.keymap.set('n', 'go', 'lua vim.lsp.buf.type_definition()', opts) vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()', opts) vim.keymap.set('n', 'gs', 'lua vim.lsp.buf.signature_help()', opts) vim.keymap.set('n', '', 'lua vim.lsp.buf.rename()', opts) vim.keymap.set({ 'n', 'x' }, '', 'lua vim.lsp.buf.format({async = true})', opts) vim.keymap.set('n', 'gc', 'lua vim.lsp.buf.code_action()', opts) -- u/Blan_11 vim.keymap.set('n', 'lh', function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end, { silent = true }) end })