-- Function for make mapping easier. local function map(mode, lhs, rhs, opts) local options = {noremap = true} if opts then options = vim.tbl_extend("force", options, opts) end vim.api.nvim_set_keymap(mode, lhs, rhs, options) end -- Map leader key to space. vim.g.mapleader = " " -- Set cl for clearing highlights after searching word in file. map("n", "cl", ":noh") -- Split navigations. map("n", "", "") map("n", "", "") map("n", "", "") map("n", "", "") -- Buffer resizing. map("n", "", ":call ResizeLeft(3)") map("n", "", ":call ResizeRight(3)") map("n", "", ":call ResizeUp(1)") map("n", "", ":call ResizeDown(1)") -- Buffer switching. map("n", "", ":BufferLineCyclePrev") map("n", "", ":BufferLineCycleNext") -- Buffer closing. map("n", "bc", ":lua require('functions').close_buffer()") -- Buffer moving. map("n", "bl", ":BufferLineMoveNext") map("n", "bh", "::BufferLineMovePrev") -- Filetree toggle map("n", "nt", ":NvimTreeToggle") -- Telescope map("n", "tw", ":Telescope live_grep") map("n", "gs", ":Telescope git_status") map("n", "gc", ":Telescope git_commits") map("n", "gb", ":Telescope git_branches") map("n", "tf", ":Telescope find_files find_command=rg,--follow,--hidden,--files") map("n", "td", ":Telescope find_directories") map("n", "tp", ":Telescope media_files") map("n", "tb", ":Telescope buffers") map("n", "th", ":Telescope help_tags") map("n", "to", ":Telescope oldfiles") map("n", "tt", ":Telescope treesitter") map("n", "tc", ":Telescope neoclip default") -- Dashboard map("n", "db", ":Dashboard") map("n", "fn", ":DashboardNewFile") map("n", "bm", ":DashboardJumpMarks") map("n", "l", ":SessionLoad") map("n", "s", ":SessionSave") -- Lsp local lsp_opts = { noremap=true, silent=true } map("n", "lD", ":lua vim.lsp.buf.declaration()", lsp_opts) map("n", "ld", ":lua vim.lsp.buf.definition()", lsp_opts) map("n", "k", ":lua vim.lsp.buf.hover()", lsp_opts) map("n", "li", ":lua vim.lsp.buf.implementation()", lsp_opts) map("n", "", ":lua vim.lsp.buf.signature_help()", lsp_opts) map("n", "la", ":lua vim.lsp.buf.add_workspace_folder()", lsp_opts) map("n", "lx", ":lua vim.lsp.buf.remove_workspace_folder()", lsp_opts) map("n", "ll", ":lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", lsp_opts) map("n", "lT", ":lua vim.lsp.buf.type_definition()", lsp_opts) map("n", "ln", ":lua vim.lsp.buf.rename()", lsp_opts) map("n", "lc", ":lua vim.lsp.buf.code_action()", lsp_opts) map("n", "lr", ":lua vim.lsp.buf.references()", lsp_opts) map("n", "[", ":lua vim.lsp.diagnostic.goto_prev()", lsp_opts) map("n", "]", ":lua vim.lsp.diagnostic.goto_next()", lsp_opts) map("n", "lq", ":Telescope diagnostics bufnr=0", lsp_opts) -- Dap map("n", "", ":lua require(\"dap\").continue()") map("n", "te", ":lua require(\"dap\").terminate()") map("n", "br", ":lua require(\"dap\").toggle_breakpoint()") map("n", "Br", ":lua require(\"dap\").set_breakpoint(vim.fn.input('Breakpoint condition: '))") map("n", "lp", ":lua require(\"dap\").set_breakpoint(nil, nil, vim.fn.input('Log point message: '))") map("n", "", ":lua require(\"dap\").step_over()") map("n", "", ":lua require(\"dap\").step_into()") map("n", "", ":lua require(\"dap\").step_out()") map("n", "sb", ":lua require(\"dap\").step_back()") map("n", "rc", ":lua require(\"dap\").run_to_cursor()") map("n", "ro", ":lua require(\"dap\").repl.open()") map("n", "dt", ":lua require(\"dapui\").toggle()") map("n", "dl", ":lua require(\"dap\").run_last()") -- ToggleTerm map("n", "", ":ToggleTerm dir=%:p:h") map("t", "", ":ToggleTerm dir=%:p:h") map("n", "v:count1 ", ":v:count1" .. "\"ToggleTerm\"") map("v", "v:count1 ", ":v:count1" .. "\"ToggleTerm\"") function _G.set_terminal_keymaps() map("t", "", "") map("t", "", "h") map("t", "", "j") map("t", "", "k") map("t", "", "l") map("t", "", ":call ResizeLeft(3)") map("t", "", ":call ResizeDown(1)") map("t", "", ":call ResizeUp(1)") map("t", "", ":call ResizeRight(3)") end vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()") -- Remove unnecessary white spaces. map("n", "cw", ":StripWhitespace") -- comment map("n", "/", ":CommentToggle") map("v", "/", ":'<,'>CommentToggle") -- Code formatter. map("n", "fr", ":Neoformat", lsp_opts) -- Searchbox.nvim map("n", "sf", ":SearchBoxIncSearch") map("n", "sF", ":SearchBoxIncSearch reverse=true") map("n", "sr", ":SearchBoxReplace") -- Cheatsheet.nvim map("n", "?", ":Cheatsheet")