local set = vim.keymap.set vim.g.mapleader = " " set("i", "jk", "<ESC>") set("i", "kj", "<ESC>") set({ "n", "x" }, "j", [[v:count == 0 ? "gj" : "j"]], { expr = true }) set({ "n", "x" }, "k", [[v:count == 0 ? "gk" : "k"]], { expr = true }) set({ "n", "x" }, ";", ":") set({ "n", "x" }, ":", ";") set({ "n", "x" }, "gy", "\"+y") set("n", "gp", "\"+p") set("n", "n", "nzz") set("n", "N", "Nzz") set("n", "<c-u>", "<c-u>zz") set("n", "<c-d>", "<c-d>zz") set("n", "<leader>w", "<c-w>", { remap = true }) set("n", "<cr>", function() if vim.v.hlsearch == 1 then vim.cmd.nohlsearch() return "" else return "<cr>" end end, { expr = true }) vim.api.nvim_create_autocmd("Filetype", { pattern = "lua", group = vim.api.nvim_create_augroup("Execute Lua", { clear = true }), callback = function() set("n", "<leader>x", "<cmd>.lua<cr>", { buffer = true }) set("x", "<leader>x", ":lua<cr>", { buffer = true }) set("n", "<leader><leader>x", "<cmd>%lua<cr>", { buffer = true }) end, }) local M = {} function M.telescope() local builtin = require("telescope.builtin") set("n", "<leader>ff", builtin.find_files) set("n", "<leader>fh", builtin.help_tags) set("n", "<leader>ft", builtin.builtin) set("n", "<leader>fm", builtin.man_pages) set("n", "<leader>fd", function() builtin.find_files({ cwd = "$DOTS", prompt_title = "< DOTFILES >" }) end) end function M.harpoon() set("", "<leader>ha", require("harpoon.mark").add_file) set("", "<leader>ho", require("harpoon.ui").toggle_quick_menu) set("", "<leader>hf", function() require("harpoon.ui").nav_file(1) end) set("", "<leader>hd", function() require("harpoon.ui").nav_file(2) end) set("", "<leader>hs", function() require("harpoon.ui").nav_file(2) end) end return M