local tb = require("telescope.builtin") vim.g.mapleader = " " vim.keymap.set("n", "", ""); vim.keymap.set("n", "", ""); -- is mapped to hover -- unmap vim.keymap.set({"v", "n"}, "J", "") -- use for home and for end vim.keymap.set({"n", "v", "o"}, "H", "g^") vim.keymap.set({"n", "v", "o"}, "L", "g_") -- find Files vim.keymap.set("n", "f", tb.find_files, {}) -- find Text vim.keymap.set("n", "t", tb.live_grep, {}) -- find Buffers vim.keymap.set("n", "b", tb.buffers, {}) -- find keyMaps vim.keymap.set("n", "m", tb.keymaps, {}) -- find Command vim.keymap.set("n", "c", tb.commands, {}) -- find Documentation vim.keymap.set("n", "d", tb.man_pages, {}) -- find symbols vim.keymap.set("n", "v", tb.lsp_workspace_symbols, {}) -- open tree vim.keymap.set({ "n" }, "", vim.cmd.NvimTreeFocus, {}) -- move and copy lines vim.keymap.set({ "i", "n" }, "", function() vim.api.nvim_feedkeys("ddkP", "x", false) end, {}) vim.keymap.set({ "i", "n" }, "", function() vim.api.nvim_feedkeys("ddp", "x", false) end, {}) vim.keymap.set({ "i", "n" }, "", function() vim.api.nvim_feedkeys("yyP", "x", false) end, {}) vim.keymap.set({ "i", "n" }, "", function() vim.api.nvim_feedkeys("yyp", "x", false) end, {}) vim.keymap.set("v", "", function () vim.api.nvim_feedkeys("yP", "x", false) end) vim.keymap.set("v", "", function () vim.api.nvim_feedkeys("yp", "x", false) end) -- toggle function signature vim.keymap.set("i", "", function() require("lsp_signature").toggle_float_win() end, {}) -- format and vplit remaps vim.keymap.set({ "n", "i" }, "", vim.cmd.Format, {}) -- vscode fold and unfold vim.keymap.set("n", "", "zc", {}) vim.keymap.set("n", "", "zo", {}) -- clangd switch source/header vim.keymap.set({ "n" }, "o", vim.cmd.ClangdSwitchSourceHeader, { silent = true }) -- goto mappings vim.keymap.set("n", "gd", vim.lsp.buf.definition, {}) vim.keymap.set("n", "gD", vim.lsp.buf.declaration, {}) vim.keymap.set("n", "gi", vim.lsp.buf.implementation, {}) vim.keymap.set("n", "", vim.lsp.buf.code_action, {}) -- copy and paste vim.keymap.set("v", "", '"+y', {}) vim.keymap.set("n", "", '"+yy', {}) vim.keymap.set("v", "", '"+p', {}) vim.keymap.set("n", "", '"+p', {}) -- lsp rename vim.keymap.set("n", "", vim.lsp.buf.rename, {}) vim.keymap.set({ "n", "v" }, ";", ":") vim.keymap.set("n", "/", ":call eregex#toggle()", { noremap = true, }) vim.keymap.set("n", "w", ":SudaWrite", { noremap = true, }) vim.keymap.set("v", "h", ":S/", { noremap = true, }) vim.keymap.set("n", "h", ":%S/", { noremap = true, }) vim.keymap.set({ "n", "v" }, "se", require("nvim-emmet").wrap_with_abbreviation) -- open command line with the path of current buffer already inserted vim.keymap.set("n", "e", function() -- print((":e " .. string.gsub(vim.fn.expand("%"), '(.*/)(.*)', '%1'))); vim.api.nvim_feedkeys((":e " .. string.gsub(vim.fn.expand("%"), "(.*/)(.*)", "%1")), "L", false) end) vim.keymap.set("n", "c", ':let @+=@"') -- training vim.keymap.set("n", "", ':echoe "Use h"') vim.keymap.set("n", "", ':echoe "Use l"') vim.keymap.set("n", "", ':echoe "Use k"') vim.keymap.set("n", "", ':echoe "Use j"') vim.keymap.set({"i", "v", "n"}, "", 'echoe "Use caps"') vim.keymap.set("i", "", ':echoe "Use h"i') vim.keymap.set("i", "", ':echoe "Use l"i') vim.keymap.set("i", "", ':echoe "Use k"i') vim.keymap.set("i", "", ':echoe "Use j"i') vim.keymap.set({"n", "v", "i"}, "", "", { noremap = true }) vim.cmd.aunmenu([[PopUp.How-to\ disable\ mouse]]) vim.cmd.aunmenu([[PopUp.Paste]]) vim.cmd.aunmenu([[PopUp.Select\ All]]) vim.cmd.aunmenu([[PopUp.Inspect]]) -- make #, closer to the cursor, fw search and * bw vim.keymap.set("n", "#", "*", { noremap = true }) vim.keymap.set("n", "*", "#", { noremap = true }) -- moving bewteen splits vim.keymap.set("n", "", "l"); vim.keymap.set("n", "", "k"); vim.keymap.set("n", "", "j"); vim.keymap.set("n", "", "h"); -- close vim.keymap.set("n", "", "c"); -- quit vim.keymap.set("n", "", "q") -- resizing -- 3 lower width, 4 increace width vim.keymap.set("n", "", "<"); vim.keymap.set("n", "", ">"); -- e lower height, r increase height vim.keymap.set("n", "", ">"); vim.keymap.set("n", "", ">"); -- movement: -- o move left, p move right vim.keymap.set("n", "", "L"); vim.keymap.set("n", "", "H"); -- 9 move down, 0 move up vim.keymap.set("n", "", "K"); vim.keymap.set("n", "", "J"); -- ./init.lua vim.keymap.set({ "i", "n" }, "", vim.cmd.vsplit, {}) vim.keymap.set({ "i", "n" }, "", vim.cmd.split, {}) -- go to file under cursor vim.keymap.set({"n"}, "", "F"); -- only -- makes more sense to use O for moving splits vim.keymap.set({ "n" }, "", vim.cmd.only, {}) -- open Definition in split view vim.keymap.set({ "n" }, "", "}", {}) -- vim.api.nvim_create_autocmd("BufAdd", { -- callback = function(e) -- vim.keymap.set({"n", "i", "v"}, "", "", { -- buffer = e.buf -- }) -- end, -- }) -- vim.api.nvim_create_autocmd("User", { -- pattern = "BufferLineHoverOver", -- callback = function(e) -- print("over") -- vim.keymap.del({"n", "i", "v"}, "", { -- buffer = e.buf -- }) -- end, -- }) -- vim.api.nvim_create_autocmd("User", { -- pattern = "BufferLineHoverOut", -- callback = function(e) -- print("out") -- vim.keymap.set({"n", "i", "v"}, "", "", { -- buffer = e.buf -- }) -- end, -- }) -- -- https://stackoverflow.com/questions/1841480/how-to-use-lowercase-marks-as-global-in-vim -- -- Use lowercase for global marks and uppercase for local marks. -- local low = function(i) return string.char(97+i) end -- local upp = function(i) return string.char(65+i) end -- -- for i=0,25 do vim.keymap.set("n", "m"..low(i), "m"..upp(i)) end -- for i=0,25 do vim.keymap.set("n", "m"..upp(i), "m"..low(i)) end -- for i=0,25 do vim.keymap.set("n", "'"..low(i), "'"..upp(i)) end -- for i=0,25 do vim.keymap.set("n", "'"..upp(i), "'"..low(i)) end