-- Keymaps are automatically loaded on the VeryLazy event -- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua -- Add any additional keymaps here -- set leader key to space vim.g.mapleader = " " local keymap = vim.keymap -- for conciseness --------------------- -- General Keymaps ------------------- -- use jk to exit insert mode keymap.set("i", "jk", "", { desc = "Exit insert mode with jk" }) -- clear search highlights keymap.set("n", "nh", ":nohl", { desc = "Clear search highlights" }) -- delete single character without copying into register -- keymap.set("n", "x", '"_x') -- increment/decrement numbers keymap.set("n", "+", "", { desc = "Increment number" }) -- increment keymap.set("n", "-", "", { desc = "Decrement number" }) -- decrement -- window management keymap.set("n", "sv", "v", { desc = "Split window vertically" }) -- split window vertically keymap.set("n", "sh", "s", { desc = "Split window horizontally" }) -- split window horizontally keymap.set("n", "se", "=", { desc = "Make splits equal size" }) -- make split windows equal width & height keymap.set( "n", "sx", "close", { desc = "Close current split" } ) -- close current split window keymap.set("n", "to", "tabnew", { desc = "Open new tab" }) -- open new tab keymap.set( "n", "tx", "tabclose", { desc = "Close current tab" } ) -- close current tab keymap.set("n", "tn", "tabn", { desc = "Go to next tab" }) -- go to next tab keymap.set("n", "tp", "tabp", { desc = "Go to previous tab" }) -- go to previous tab keymap.set( "n", "tf", "tabnew %", { desc = "Open current buffer in new tab" } ) -- move current buffer to new tab keymap.set("i", "", "^i", { desc = "Move Beginning of line" }) keymap.set("i", "", "", { desc = "Move End of line" }) keymap.set("i", "", "", { desc = "Move Left" }) keymap.set("i", "", "", { desc = "Move Right" }) keymap.set("i", "", "", { desc = "Move Down" }) keymap.set("i", "", "", { desc = "Move Up" }) keymap.set("n", "", "noh", { desc = "General Clear highlights" }) keymap.set("n", "", "h", { desc = "Switch Window left" }) keymap.set("n", "", "l", { desc = "Switch Window right" }) keymap.set("n", "", "j", { desc = "Switch Window down" }) keymap.set("n", "", "k", { desc = "Switch Window up" }) keymap.set("n", "", "", { desc = "Increase Window Height" }) keymap.set("n", "", "w", { desc = "File Save" }) keymap.set("i", "", "l", { desc = "Save file in Insert mode" }) keymap.set("n", "", "%y+", { desc = "File Copy whole" }) -- keymap.set("n", "n", "set nu!", { desc = "Toggle Line number" }) -- keymap.set("n", "rn", "set rnu!", { desc = "Toggle Relative number" }) -- keymap.set("n", "ch", "NvCheatsheet", { desc = "Toggle NvCheatsheet" }) keymap.set("n", "fm", function() require("conform").format({ lsp_fallback = true }) end, { desc = "Format Files" }) -- global lsp mappings keymap.set( "n", "lf", vim.diagnostic.open_float, { desc = "Lsp floating diagnostics" } ) keymap.set( "n", "[d", vim.diagnostic.goto_prev, { desc = "Lsp prev diagnostic" } ) keymap.set( "n", "]d", vim.diagnostic.goto_next, { desc = "Lsp next diagnostic" } ) keymap.set( "n", "q", vim.diagnostic.setloclist, { desc = "Lsp diagnostic loclist" } ) -- Comment keymap.set("n", "/", function() require("Comment.api").toggle.linewise.current() end, { desc = "Comment Toggle" }) keymap.set( "v", "/", "lua require('Comment.api').toggle.linewise(vim.fn.visualmode())", { desc = "Comment Toggle" } ) -- blogutils keymap.set("n", "`", "", { desc = "Command for blogutils" }) -- telescope keymap.set( "n", "fw", "Telescope live_grep", { desc = "Telescope Live grep" } ) keymap.set( "n", "fb", "Telescope buffers", { desc = "Telescope Find buffers" } ) keymap.set( "n", "fh", "Telescope help_tags", { desc = "Telescope Help page" } ) keymap.set( "n", "fo", "Telescope oldfiles", { desc = "Telescope Find oldfiles" } ) keymap.set( "n", "fz", "Telescope current_buffer_fuzzy_find", { desc = "Telescope Find in current buffer" } ) keymap.set( "n", "cm", "Telescope git_commits", { desc = "Telescope Git commits" } ) keymap.set( "n", "gt", "Telescope git_status", { desc = "Telescope Git status" } ) keymap.set( "n", "pt", "Telescope terms", { desc = "Telescope Pick hidden term" } ) keymap.set( "n", "th", "Telescope themes", { desc = "Telescope Nvchad themes" } ) keymap.set( "n", "ff", "Telescope find_files", { desc = "Telescope Find files" } ) keymap.set( "n", "fa", "Telescope find_files follow=true no_ignore=true hidden=true", { desc = "Telescope Find all files" } ) -- terminal keymap.set( "t", "", "", { desc = "Terminal Escape terminal mode" } ) keymap.set("t", "", function() local win = vim.api.nvim_get_current_win() vim.api.nvim_win_close(win, true) end, { desc = "Terminal Close term in terminal mode" }) -- whichkey keymap.set( "n", "wK", "WhichKey ", { desc = "Whichkey all keymaps" } ) keymap.set("n", "wk", function() vim.cmd("WhichKey " .. vim.fn.input("WhichKey: ")) end, { desc = "Whichkey query lookup" }) -- blankline keymap.set("n", "cc", function() local config = { scope = {} } config.scope.exclude = { language = {}, node_type = {} } config.scope.include = { node_type = {} } local node = require("ibl.scope").get(vim.api.nvim_get_current_buf(), config) if node then local start_row, _, end_row, _ = node:range() if start_row ~= end_row then vim.api.nvim_win_set_cursor( vim.api.nvim_get_current_win(), { start_row + 1, 0 } ) vim.api.nvim_feedkeys("_", "n", true) end end end, { desc = "Blankline Jump to current context" })