From 97af93b2a8ebc89364852e3f63e9fd8cfedaeedf Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Mon, 9 Jun 2025 13:43:45 +0300 Subject: =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B2=D1=91=D0=BB=20dotfiles?= =?UTF-8?q?=20=D0=BD=D0=B0=20stow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/nvim/lua/keymaps.lua | 77 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 config/nvim/lua/keymaps.lua (limited to 'config/nvim/lua/keymaps.lua') diff --git a/config/nvim/lua/keymaps.lua b/config/nvim/lua/keymaps.lua new file mode 100644 index 0000000..76919a8 --- /dev/null +++ b/config/nvim/lua/keymaps.lua @@ -0,0 +1,77 @@ +local map = vim.api.nvim_set_keymap +local kmap = vim.keymap.set +-- Базовые настройки навигации -- +map("n", "", "", { noremap = true, silent = true }) + +-- Навигация в начало/конец строки +map("n", "", "^", { noremap = true, silent = true }) +map("n", "", "$", { noremap = true, silent = true }) +map("v", "", "^", { noremap = true, silent = true }) +map("v", "", "$", { noremap = true, silent = true }) +map("i", "", "^", { noremap = true, silent = true }) +map("i", "", "$", { noremap = true, silent = true }) + +-- Фикс для визуального режима +map("v", "i", "", { noremap = true, silent = true }) +map("v", "a", "", { noremap = true, silent = true }) +map("v", "J", ":m '>+1gv=gv", { noremap = true, silent = true }) +map("v", "K", ":m '<-2gv=gv", { noremap = true, silent = true }) +map("v", "<", "", ">gv", { noremap = true, silent = true }) + +-- {{{ Управление буферами -- +kmap("n", "bn", "bnext", { noremap = true, silent = true, desc = "Next buffer" }) +kmap("n", "bp", "bprevious", { noremap = true, silent = true, desc = "Previous buffer" }) +kmap("n", "bd", "bdelete", { noremap = true, silent = true, desc = "Delete buffer" }) +kmap("n", "", "wa", { noremap = true, silent = true, desc = "Save all files" }) +kmap("n", "q", "q", { noremap = true, silent = true, desc = "Exit" }) +kmap("n", "vs", "vsplit", { noremap = true, silent = true, desc = "Vertical split" }) +-- }}} + +-- {{{ Управление вкладками -- +kmap("n", "", ":tabnext", { noremap = true, silent = true, desc = "Next tab" }) +kmap("n", "", ":tabprevious", { noremap = true, silent = true, desc = "Previous tab" }) +kmap("n", "", ":tabnew", { noremap = true, silent = true, desc = "New tab" }) +kmap("n", "", ":tabclose", { noremap = true, silent = true, desc = "Close tab" }) + +-- Быстрый переход по вкладкам -- +for i = 1, 9 do + kmap("n", "", ":tabn " .. i .. "", { noremap = true, silent = true, desc = "Go to tab " .. i }) +end + +-- }}} + +-- {{{ LSP функции +kmap("n", "d[", vim.diagnostic.goto_prev, { noremap = true, silent = true, desc = "Previous diagnostic" }) +kmap("n", "d]", vim.diagnostic.goto_next, { noremap = true, silent = true, desc = "Next diagnostic" }) + +kmap("n", "gD", vim.lsp.buf.declaration, { noremap = true, silent = true, desc = "Go to declaration" }) +kmap("n", "gd", vim.lsp.buf.definition, { noremap = true, silent = true, desc = "Go to definition" }) +kmap("n", "K", vim.lsp.buf.hover, { noremap = true, silent = true, desc = "Show documentation" }) + +kmap("n", "", vim.lsp.buf.signature_help, { noremap = true, silent = true, desc = "Signature help" }) + +kmap( + "n", + "wa", + vim.lsp.buf.add_workspace_folder, + { noremap = true, silent = true, desc = "Add workspace folder" } +) + +kmap( + "n", + "wr", + vim.lsp.buf.remove_workspace_folder, + { noremap = true, silent = true, desc = "Remove workspace folder" } +) + +kmap("n", "wl", function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) +end, { noremap = true, silent = true, desc = "List workspace folders" }) + +--kmap("n", "", vim.lsp.buf.code_action, { noremap = true, silent = true, desc = "Code actions" }) +kmap("n", "", "Lspsaga code_action", { noremap = true, silent = true, desc = "Code actions" }) + +kmap("n", "", vim.lsp.buf.rename, { noremap = true, silent = true, desc = "Rename symbol" }) + +-- }}} -- cgit v1.2.3