-- 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") map("n", "tr", ":Telescope registers") -- Lsp local lsp_opts = { noremap = true, silent = true } map("n", "lD", ":lua vim.lsp.buf.declaration()", lsp_opts) map("n", "ld", ":lua require('goto-preview').goto_preview_definition()", lsp_opts) map("n", "k", ":lua vim.lsp.buf.hover()", lsp_opts) map("n", "li", ":lua require('goto-preview').goto_preview_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", ":CodeActionMenu", lsp_opts) map("n", "ls", ":SymbolsOutline", lsp_opts) map("n", "lr", ":lua vim.lsp.buf.references()", lsp_opts) map("n", "lf", ":lua vim.lsp.buf.formatting()", lsp_opts) map("n", "[", ":lua vim.diagnostic.goto_prev()", lsp_opts) map("n", "]", ":lua vim.diagnostic.goto_next()", lsp_opts) map("n", "lq", ":Telescope diagnostics bufnr=0", lsp_opts) -- Dap map("n", "dR", ':lua require("dap").continue()') map("n", "de", ':lua require("dap").terminate()') map("n", "db", ':lua require("dap").toggle_breakpoint()') map("n", "dr", ":lua require(\"dap\").set_breakpoint(vim.fn.input('Breakpoint condition: '))") map("n", "dp", ":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", "dB", ':lua require("dap").step_back()') map("n", "dc", ':lua require("dap").run_to_cursor()') map("n", "do", ':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")