diff options
| author | Petri Hienonen <petri.hienonen@gmail.com> | 2024-05-23 13:56:00 +0300 |
|---|---|---|
| committer | Petri Hienonen <petri.hienonen@gmail.com> | 2025-11-30 12:29:57 +0200 |
| commit | 08297376a85a1719518507e54fca9de954d2376a (patch) | |
| tree | 3b9c58304b40248533bbb2bb5b7bad2da9da1ff0 /home/nvim/keymaps.lua | |
| parent | 75c2af4aedd2ac5c2cfc74b346625fa4b265541d (diff) | |
| download | nixos-08297376a85a1719518507e54fca9de954d2376a.tar.zst | |
Agenix configuration
Diffstat (limited to 'home/nvim/keymaps.lua')
| -rw-r--r-- | home/nvim/keymaps.lua | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/home/nvim/keymaps.lua b/home/nvim/keymaps.lua new file mode 100644 index 0000000..d8907bf --- /dev/null +++ b/home/nvim/keymaps.lua @@ -0,0 +1,86 @@ +vim.g.mapleader = " " +vim.g.maplocalleader = " " +vim.keymap.set("v", "<", "<gv", { desc = "Indent left" }) +vim.keymap.set("v", ">", ">gv", { desc = "Indent right" }) + +vim.keymap.set("n", "<leader><space>", "<cmd>Pick buffers<cr>", { desc = "Search open files" }) +vim.keymap.set("n", "<leader>ff", "<cmd>Pick files<cr>", { desc = "Search all files" }) +vim.keymap.set("n", "<leader>fh", "<cmd>Pick help<cr>", { desc = "Search help tags" }) + +-- Alternative navigation (more intuitive) +vim.keymap.set("n", "<leader>tn", ":tabnew<CR>", { desc = "New tab" }) +vim.keymap.set("n", "<leader>tx", ":tabclose<CR>", { desc = "Close tab" }) + +-- Tab moving +vim.keymap.set("n", "<leader>tm", ":tabmove<CR>", { desc = "Move tab" }) +vim.keymap.set("n", "<leader>t>", ":tabmove +1<CR>", { desc = "Move tab right" }) +vim.keymap.set("n", "<leader>t<", ":tabmove -1<CR>", { desc = "Move tab left" }) + +vim.keymap.set("n", "<leader>dq", vim.diagnostic.disable) +vim.keymap.set("n", "<leader>ds", vim.diagnostic.enable) + +vim.keymap.set({ "n", "x" }, "gy", '"+y', { desc = "Copy to clipboard" }) +vim.keymap.set({ "n", "x" }, "gp", '"+p', { desc = "Paste clipboard text" }) + +vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>") +vim.keymap.set( + "n", + "<leader>q", + vim.diagnostic.setloclist, + { desc = "Open diagnostic [Q]uickfix list" } +) +vim.keymap.set("n", "<leader>q", ":bp<bar>sp<bar>bn<bar>bd<CR>", { desc = "Close buffer" }) +vim.keymap.set("n", "<leader>Q", ":bd!<CR>", { desc = "Force close buffer" }) +vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" }) + +vim.keymap.set("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" }) +vim.keymap.set("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" }) +vim.keymap.set("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" }) +vim.keymap.set("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" }) + +vim.keymap.set("n", "<leader>e", "<CMD>:lua MiniFiles.open()<CR>", { desc = "Open [E]xplorer" }) + +vim.keymap.set("n", "<F5>", "<cmd>DapContinue<CR>", { desc = "DAP: Continue" }) +vim.keymap.set("n", "<leader>bp", "<cmd>DapToggleBreakpoint<CR>", { desc = "DAP: Toggle Breakpoint" }) +vim.keymap.set("n", "<F6>", "<cmd>DapStepOver<CR>", { desc = "DAP: Step Over" }) +vim.keymap.set("n", "<F7>", "<cmd>DapStepInto<CR>", { desc = "DAP: Step Into" }) +vim.keymap.set("n", "<F8>", "<cmd>DapStepOut<CR>", { desc = "DAP: Step Out" }) +vim.keymap.set("n", "<leader>dt", "<cmd>DapTerminate<CR>", { desc = "DAP: Terminate" }) + +local function tab_complete() + if vim.fn.pumvisible() == 1 then + -- navigate to next item in completion menu + return "<Down>" + end + + local c = vim.fn.col(".") - 1 + local is_whitespace = c == 0 or vim.fn.getline("."):sub(c, c):match("%s") + + if is_whitespace then + -- insert tab + return "<Tab>" + end + + local lsp_completion = vim.bo.omnifunc == "v:lua.vim.lsp.omnifunc" + + if lsp_completion then + -- trigger lsp code completion + return "<C-x><C-o>" + end + + -- suggest words in current buffer + return "<C-x><C-n>" +end + +local function tab_prev() + if vim.fn.pumvisible() == 1 then + -- navigate to previous item in completion menu + return "<Up>" + end + + -- insert tab + return "<Tab>" +end + +vim.keymap.set("i", "<Tab>", tab_complete, { expr = true }) +vim.keymap.set("i", "<S-Tab>", tab_prev, { expr = true }) |
