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", "w", "wa", { noremap = true, silent = true, desc = "Save all files" }) kmap("n", "qq", "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", "tn", ":tabnew", { noremap = true, silent = true, desc = "New tab" }) kmap("n", "tc", ":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 -- }}} kmap("n", "tt", ":split:terminal:startinsert", { noremap = true, silent = true }) -- {{{ LSP функции kmap("n", "e", vim.diagnostic.open_float, { noremap = true, silent = true, desc = "Show diagnostics" }) 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", "gi", vim.lsp.buf.implementation, { noremap = true, silent = true, desc = "Go to implementation" }) 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", "D", vim.lsp.buf.type_definition, { noremap = true, silent = true, desc = "Type definition" }) kmap("n", "", vim.lsp.buf.code_action, { noremap = true, silent = true, desc = "Code actions" }) kmap("n", "gr", vim.lsp.buf.references, { noremap = true, silent = true, desc = "Find references" }) kmap("n", "", vim.lsp.buf.rename, { noremap = true, silent = true, desc = "Rename symbol" }) -- }}}