diff options
Diffstat (limited to 'plugin/10-remap.lua')
| -rw-r--r-- | plugin/10-remap.lua | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/plugin/10-remap.lua b/plugin/10-remap.lua new file mode 100644 index 0000000..a30d6a8 --- /dev/null +++ b/plugin/10-remap.lua @@ -0,0 +1,162 @@ +vim.g.mapleader = " " +vim.keymap.set("n", "<leader>e", "<cmd>Oil --float<CR>") +vim.keymap.set("n", "<leader>n", "<cmd>set nu!<CR>") +vim.keymap.set("n", "<leader>rn", "<cmd>set rnu!<CR>") +vim.keymap.set("n", "<CR>", "<cmd>nohl<CR>") +vim.keymap.set("n", "<leader>x", "<cmd>bw<CR>") +vim.keymap.set("n", "<leader>n", "<cmd>bn<CR>") +vim.keymap.set("n", "<leader>p", "<cmd>bp<CR>") +vim.keymap.set("n", "<leader>fb", "=ap") +vim.keymap.set("n", "<leader>m", "<cmd>make<CR>") +vim.keymap.set("n", "<leader><leader>", "<cmd>!chmod 755 %<CR>", { silent = true }) +vim.keymap.set("n", "<A-J>", ":m .+1<CR>==") +vim.keymap.set("n", "<A-K>", ":m .-2<CR>==") +vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv") +vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv") +vim.keymap.set("n", "<A-a>", "<C-a>") +vim.keymap.set("n", "<A-x>", "<C-x>") +vim.keymap.set("v", ">", ">gv") +vim.keymap.set("v", "<", "<gv") +vim.keymap.set("n", "<leader>sl", "<cmd>exec \"normal i\".nr2char(getchar()).\"\\e\"<CR>") +vim.keymap.set("n", "<leader>sc", "<cmd>exec \"normal a\".nr2char(getchar()).\"\\e\"<CR>") + +-- u/soer9459 +vim.keymap.set("n", "<leader>,", + function() + local cursor = vim.api.nvim_win_get_cursor(0) + vim.cmd("norm A;") + vim.api.nvim_win_set_cursor(0, cursor) + end, + { noremap = true, silent = true }) + +-- Switch between windows +vim.keymap.set("n", "<C-h>", "<C-w>h") +vim.keymap.set("n", "<C-l>", "<C-w>l") +vim.keymap.set("n", "<C-j>", "<C-w>j") +vim.keymap.set("n", "<C-k>", "<C-w>k") +vim.keymap.set("n", "<C-a>v", ":vsp<CR>") +vim.keymap.set("n", "<C-a>-", ":sp<CR>") + +-- Switch between panes +vim.keymap.set("n", "<C-h>", "<cmd>TmuxNavigateLeft<CR>") +vim.keymap.set("n", "<C-l>", "<cmd>TmuxNavigateRight<CR>") +vim.keymap.set("n", "<C-j>", "<cmd>TmuxNavigateDown<CR>") +vim.keymap.set("n", "<C-k>", "<cmd>TmuxNavigateUp<CR>") + +-- Color picker +vim.keymap.set("n", "<leader>cc", "<cmd>CccPick<CR>") + +-- VimTex +vim.keymap.set("n", "<leader>ll", "<cmd>VimtexCompile<CR>") +vim.keymap.set("n", "<leader>vl", "<cmd>VimtexView<CR>") + +-- Screenkey +vim.keymap.set("n", "<leader>sk", "<cmd>Screenkey<CR>") + +-- Undotree +vim.cmd("packadd nvim.undotree") +vim.keymap.set("n", "<leader>u", require("undotree").open) + +-- Telescope +local lazy_telescope = function() + vim.pack.add({ + "https://github.com/nvim-lua/plenary.nvim", + { + src = "https://github.com/nvim-telescope/telescope.nvim", + version = "v0.2.2" + }, + }) + + require("telescope").setup({ + pickers = { + find_files = { + hidden = true, + find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/**" }, + }, + }, + }) +end + +vim.keymap.set("n", "<leader>ff", function() + lazy_telescope() + vim.cmd("Telescope find_files") +end, {}) +vim.keymap.set("n", "<leader>fw", function() + lazy_telescope() + vim.cmd("Telescope live_grep") +end, {}) +vim.keymap.set("n", "<leader>fo", function() + lazy_telescope() + vim.cmd("Telescope buffers") +end, {}) +vim.keymap.set("n", "<leader>fh", function() + lazy_telescope() + vim.cmd("Telescope help_tags") +end, {}) +vim.keymap.set("n", "<leader>fz", function() + lazy_telescope() + vim.cmd("Telescope current_buffer_fuzzy_find") +end, {}) +vim.keymap.set("n", "<leader>fg", function() + lazy_telescope() + vim.cmd("Telescope git_files") +end, {}) +vim.keymap.set("n", "<leader>fd", function() + lazy_telescope() + vim.cmd("Telescope diagnostics") +end, {}) +vim.keymap.set("n", "<leader>ft", function() + lazy_telescope() + local telescope = require("telescope.builtin") + local handle = io.popen("rg 'TODO'") + if handle == nil then return end + local result = handle:read("*a") + handle:close() + + if result:match("[^\r\n]+") == nil then + local todo_files = {} + + local files_handle = io.popen("rg --files -g 'TODO.{md,txt}'") + if files_handle == nil then return end + local files_result = files_handle:read("*a") + files_handle:close() + + for file in files_result:gmatch("[^\r\n]+") do + table.insert(todo_files, file) + end + + if #todo_files > 0 then + telescope.find_files({ + prompt_title = "Choose TODO file", + cwd = vim.fn.getcwd(), + search_dirs = todo_files + }) + else + vim.api.nvim_echo({ { "Failed to find any to-dos", "WarningMsg" } }, true, {}) + end + else + telescope.grep_string({ search = "TODO" }) + end +end, { noremap = true, silent = true }) + +-- Diagnostics, LSP +vim.keymap.set("n", "gl", "<cmd>lua vim.diagnostic.open_float()<CR>") +vim.keymap.set("n", "gp", "<cmd>lua vim.diagnostic.jump({ count = -1 })<CR>") +vim.keymap.set("n", "gn", "<cmd>lua vim.diagnostic.jump({ count = 1 })<CR>") + +vim.api.nvim_create_autocmd("LspAttach", { + desc = "LSP actions", + callback = function(event) + local opts = { buffer = event.buf } + + vim.keymap.set("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts) + vim.keymap.set("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts) + vim.keymap.set("n", "go", "<cmd>lua vim.lsp.buf.type_definition()<CR>", opts) + vim.keymap.set("n", "gs", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts) + vim.keymap.set({ "n", "x" }, "<S-f>", "<cmd>lua vim.lsp.buf.format({async = true})<CR>", opts) + -- u/Blan_11 + vim.keymap.set("n", "<leader>lh", function() + vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) + end, { silent = true, buffer = event.buf }) + end +}) |
