-- This file is automatically loaded by plugins.config local util = require("lazyvim.util") -- better up/down vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) -- Move to window using the hjkl keys vim.keymap.set("n", "", "h") vim.keymap.set("n", "", "j") vim.keymap.set("n", "", "k") vim.keymap.set("n", "", "l") -- Resize window using arrow keys 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") -- Move Lines vim.keymap.set("n", "", ":m .+1==") vim.keymap.set("v", "", ":m '>+1gv=gv") vim.keymap.set("i", "", ":m .+1==gi") vim.keymap.set("n", "", ":m .-2==") vim.keymap.set("v", "", ":m '<-2gv=gv") vim.keymap.set("i", "", ":m .-2==gi") -- Switch buffers with vim.keymap.set("n", "", "bprevious") vim.keymap.set("n", "", "bnext") -- Easier pasting vim.keymap.set("n", "[p", ":pu!") vim.keymap.set("n", "]p", ":pu") -- Clear search with vim.keymap.set({ "i", "n" }, "", "noh") vim.keymap.set("n", "gw", "*N") vim.keymap.set("x", "gw", "*N") -- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n vim.keymap.set("n", "n", "'Nn'[v:searchforward]", { expr = true }) vim.keymap.set("x", "n", "'Nn'[v:searchforward]", { expr = true }) vim.keymap.set("o", "n", "'Nn'[v:searchforward]", { expr = true }) vim.keymap.set("n", "N", "'nN'[v:searchforward]", { expr = true }) vim.keymap.set("x", "N", "'nN'[v:searchforward]", { expr = true }) vim.keymap.set("o", "N", "'nN'[v:searchforward]", { expr = true }) -- Add undo break-points vim.keymap.set("i", ",", ",u") vim.keymap.set("i", ".", ".u") vim.keymap.set("i", ";", ";u") -- save in insert mode vim.keymap.set({ "i", "v", "n", "s" }, "", "w") -- better indenting vim.keymap.set("v", "<", "", ">gv") -- lazy vim.keymap.set("n", "l", ":Lazy") -- new file vim.keymap.set("n", "fn", "enew", { desc = "New File" }) vim.keymap.set("n", "xl", "lopen", { desc = "Open Location List" }) vim.keymap.set("n", "xq", "copen", { desc = "Open Quickfix List" }) -- stylua: ignore start -- toggle options vim.keymap.set("n", "tf", require("lazyvim.plugins.lsp.format").toggle, { desc = "Format on Save" }) vim.keymap.set("n", "ts", function() util.toggle("spell") end, { desc = "Spelling" }) vim.keymap.set("n", "tw", function() util.toggle("wrap") end, { desc = "Word Wrap" }) vim.keymap.set("n", "tn", function() util.toggle("relativenumber", true) util.toggle("number") end, { desc = "Line Numbers" }) vim.keymap.set("n", "td", util.toggle_diagnostics, { desc = "Diagnostics" }) local conceallevel = vim.o.conceallevel > 0 and vim.o.conceallevel or 3 vim.keymap.set("n", "tc", function() util.toggle("conceallevel", false, {0, conceallevel}) end, { desc = "Conceal" }) -- lazygit vim.keymap.set("n", "gg", function() require("lazyvim.util").float_term({ "lazygit" }) end, { desc = "Lazygit (cwd)" }) vim.keymap.set("n", "gG", function() util.float_term({ "lazygit" }, { cwd = util.get_root() }) end, { desc = "Lazygit (root dir)" }) -- quit vim.keymap.set("n", "qq", "qa", { desc = "Quit all" }) -- highlights under cursor if vim.fn.has("nvim-0.9.0") == 1 then vim.keymap.set("n", "hl", vim.show_pos, { desc = "Highlight Groups at cursor" }) end -- floating terminal vim.keymap.set("n", "ot", function() util.float_term(nil, { cwd = util.get_root() }) end, { desc = "Terminal (root dir)" }) vim.keymap.set("n", "oT", function() require("lazyvim.util").float_term() end, { desc = "Terminal (cwd)" }) vim.keymap.set("t", "", "", {desc = "Enter Normal Mode"}) -- windows vim.keymap.set("n", "ww", "p", { desc = "other-window" }) vim.keymap.set("n", "wd", "c", { desc = "delete-window" }) vim.keymap.set("n", "w-", "s", { desc = "split-window-below" }) vim.keymap.set("n", "w|", "v", { desc = "split-window-right" }) -- tabs vim.keymap.set("n", "l", "tablast", { desc = "Last" }) vim.keymap.set("n", "f", "tabfirst", { desc = "First" }) vim.keymap.set("n", "", "tabnew", { desc = "New Tab" }) vim.keymap.set("n", "]", "tabnext", { desc = "Next" }) vim.keymap.set("n", "d", "tabclose", { desc = "Close" }) vim.keymap.set("n", "[", "tabprevious", { desc = "Previous" }) -- buffers vim.keymap.set("n", "b]", ":BufferLineCycleNext", { desc = "Next Buffer" }) vim.keymap.set("n", "bb", ":e #", { desc = "Switch to Other Buffer" }) vim.keymap.set("n", "b[", ":BufferLineCyclePrev", { desc = "Previous Buffer" }) vim.keymap.set("n", "`", ":e #", { desc = "Switch to Other Buffer" })