diff options
| author | 2025-04-21 20:21:46 +0300 | |
|---|---|---|
| committer | 2025-04-21 20:21:46 +0300 | |
| commit | 0aeec225539cc6b74736106223a21da9635d240c (patch) | |
| tree | a71a228e1ee556b295facc6bc0bd09fcf1acf6db /nvim | |
| parent | Привёл nvim к достаточному состоянию (diff) | |
| download | dotfiles-0aeec225539cc6b74736106223a21da9635d240c.tar.gz dotfiles-0aeec225539cc6b74736106223a21da9635d240c.tar.bz2 dotfiles-0aeec225539cc6b74736106223a21da9635d240c.tar.xz dotfiles-0aeec225539cc6b74736106223a21da9635d240c.zip | |
Быстрый выход
Diffstat (limited to '')
| -rw-r--r-- | nvim/lua/keymaps.lua | 155 | ||||
| -rw-r--r-- | nvim/lua/plugins/telescope.lua | 12 |
2 files changed, 114 insertions, 53 deletions
diff --git a/nvim/lua/keymaps.lua b/nvim/lua/keymaps.lua index 969c629..71ddbd9 100644 --- a/nvim/lua/keymaps.lua +++ b/nvim/lua/keymaps.lua @@ -1,65 +1,126 @@ local map = vim.api.nvim_set_keymap local kmap = vim.keymap.set -local opts = { noremap = true, silent = true } -map("n", "<Space>", "<Nop>", opts) -map("n", "<Home>", "^", opts) -map("n", "<End>", "$", opts) -map("v", "<Home>", "^", opts) -map("v", "<End>", "$", opts) -map("i", "<Home>", "<C-o>^", opts) -map("i", "<End>", "<C-o>$", opts) +-- Базовые настройки навигации -- +map("n", "<Space>", "<Nop>", { noremap = true, silent = true }) -map("v", "i", "<S-i>", opts) -map("v", "a", "<S-a>", opts) +-- Навигация в начало/конец строки +map("n", "<Home>", "^", { noremap = true, silent = true }) +map("n", "<End>", "$", { noremap = true, silent = true }) +map("v", "<Home>", "^", { noremap = true, silent = true }) +map("v", "<End>", "$", { noremap = true, silent = true }) +map("i", "<Home>", "<C-o>^", { noremap = true, silent = true }) +map("i", "<End>", "<C-o>$", { noremap = true, silent = true }) --- Перемещение между буферами -map("n", "<leader>bn", "<cmd>bnext<CR>", opts) -- Следующий буфер -map("n", "<leader>bp", "<cmd>bprevious<CR>", opts) -- Предыдущий буфер -map("n", "<leader>bd", "<cmd>bdelete<CR>", opts) -- Закрыть текущий буфер -map("n", "<leader>w", "<cmd>wa<CR>", opts) +-- Фикс для визуального режима +map("v", "i", "<S-i>", { noremap = true, silent = true }) +map("v", "a", "<S-a>", { noremap = true, silent = true }) --- Tree -map("n", "<F3>", ":NvimTreeToggle<CR>", opts) +-- Управление буферами -- +kmap("n", "<leader>bn", "<cmd>bnext<CR>", { noremap = true, silent = true, desc = "Next buffer" }) +kmap("n", "<leader>bp", "<cmd>bprevious<CR>", { noremap = true, silent = true, desc = "Previous buffer" }) +kmap("n", "<leader>bd", "<cmd>bdelete<CR>", { noremap = true, silent = true, desc = "Delete buffer" }) +kmap("n", "<leader>w", "<cmd>wa<CR>", { noremap = true, silent = true, desc = "Save all files" }) +kmap("n", "qq", "<cmd>q<CR>") +-- Управление вкладками -- +kmap("n", "<A-Right>", ":tabnext<CR>", { noremap = true, silent = true, desc = "Next tab" }) +kmap("n", "<A-Left>", ":tabprevious<CR>", { noremap = true, silent = true, desc = "Previous tab" }) +kmap("n", "<leader>tn", ":tabnew<CR>", { noremap = true, silent = true, desc = "New tab" }) +kmap("n", "<leader>tc", ":tabclose<CR>", { noremap = true, silent = true, desc = "Close tab" }) --- Telescope -map("n", "<leader>ff", "<cmd>Telescope find_files<CR>", opts) -map("n", "<leader>fg", "<cmd>Telescope live_grep<CR>", opts) -map("n", "<leader>fb", "<cmd>Telescope buffers<CR>", opts) +-- Быстрый переход по вкладкам -- +for i = 1, 9 do + kmap("n", "<A-" .. i .. ">", ":tabn " .. i .. "<CR>", { noremap = true, silent = true, desc = "Go to tab " .. i }) +end + +-- Файловый менеджер -- +kmap("n", "<F3>", ":NvimTreeToggle<CR>", { noremap = true, silent = true, desc = "Toggle file tree" }) --- LSP -kmap("n", "<leader>e", vim.diagnostic.open_float, opts) -kmap("n", "[d", vim.diagnostic.goto_prev, opts) -kmap("n", "]d", vim.diagnostic.goto_next, opts) -kmap("n", "<leader>q", vim.diagnostic.setloclist, opts) +-- Поиск с Telescope -- +kmap("n", "<leader>ff", "<cmd>Telescope find_files<CR>", { noremap = true, silent = true, desc = "Find files" }) +kmap("n", "<leader>fg", "<cmd>Telescope live_grep<CR>", { noremap = true, silent = true, desc = "Live grep" }) +kmap("n", "<leader>fb", "<cmd>Telescope buffers<CR>", { noremap = true, silent = true, desc = "Find buffers" }) --- стандартные горячие клавиши для LSP, больше в документации --- https://github.com/neovim/nvim-lspconfig -kmap("n", "gD", vim.lsp.buf.declaration, opts) -kmap("n", "gd", vim.lsp.buf.definition, opts) -kmap("n", "K", vim.lsp.buf.hover, opts) -kmap("n", "gi", vim.lsp.buf.implementation, opts) -kmap("n", "<C-k>", vim.lsp.buf.signature_help, opts) -kmap("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, opts) -kmap("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, opts) +-- LSP функции -- +kmap("n", "<leader>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", "<leader>q", vim.diagnostic.setloclist, { noremap = true, silent = true, desc = "Add to location list" }) + +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", "<C-k>", vim.lsp.buf.signature_help, { noremap = true, silent = true, desc = "Signature help" }) +kmap( + "n", + "<leader>wa", + vim.lsp.buf.add_workspace_folder, + { noremap = true, silent = true, desc = "Add workspace folder" } +) +kmap( + "n", + "<leader>wr", + vim.lsp.buf.remove_workspace_folder, + { noremap = true, silent = true, desc = "Remove workspace folder" } +) kmap("n", "<leader>wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) -end, opts) -kmap("n", "<leader>D", vim.lsp.buf.type_definition, opts) -kmap("n", "<leader>rn", vim.lsp.buf.rename, opts) -kmap("n", "<leader>ca", vim.lsp.buf.code_action, opts) -kmap("n", "gr", vim.lsp.buf.references, opts) --- kmap('n', '<leader>f', vim.lsp.buf.formatting, opts) -kmap("n", "<leader>bb", "<cmd>lua require'dap'.toggle_breakpoint()<CR>", opts) -kmap("n", "<F9>", "<cmd>lua require'dap'.continue()<CR>", opts) -kmap("n", "<F8>", "<cmd>lua require'dap'.step_over()<CR>", opts) -kmap("n", "<F7>", "<cmd>lua require'dap'.step_into()<CR>", opts) -kmap("n", "<F2>", "<cmd>lua require'dapui'.toggle()<CR>", opts) +end, { noremap = true, silent = true, desc = "List workspace folders" }) +kmap("n", "<leader>D", vim.lsp.buf.type_definition, { noremap = true, silent = true, desc = "Type definition" }) +kmap("n", "<leader>rn", vim.lsp.buf.rename, { noremap = true, silent = true, desc = "Rename symbol" }) +kmap("n", "<leader>ca", 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" }) + +-- Отладка (DAP) -- +kmap("n", "<F9>", "<cmd>lua require'dapui'.toggle()<CR>", { noremap = true, silent = true, desc = "Toggle debug UI" }) +kmap("n", "<F5>", function() + require("dap").continue() +end) +kmap("n", "<F10>", function() + require("dap").step_over() +end) +kmap("n", "<F11>", function() + require("dap").step_into() +end) +kmap("n", "<F12>", function() + require("dap").step_out() +end) +kmap("n", "<Leader>b", function() + require("dap").toggle_breakpoint() +end) +kmap("n", "<Leader>B", function() + require("dap").set_breakpoint() +end) +kmap("n", "<Leader>lp", function() + require("dap").set_breakpoint(nil, nil, vim.fn.input("Log point message: ")) +end) +kmap("n", "<Leader>dr", function() + require("dap").repl.open() +end) +kmap("n", "<Leader>dl", function() + require("dap").run_last() +end) +kmap({ "n", "v" }, "<Leader>dh", function() + require("dap.ui.widgets").hover() +end) +kmap({ "n", "v" }, "<Leader>dp", function() + require("dap.ui.widgets").preview() +end) +kmap("n", "<Leader>df", function() + local widgets = require("dap.ui.widgets") + widgets.centered_float(widgets.frames) +end) +kmap("n", "<Leader>ds", function() + local widgets = require("dap.ui.widgets") + widgets.centered_float(widgets.scopes) +end) +-- Кастомная функция для NvimTree -- local function change_root_to_global_cwd() local api = require("nvim-tree.api") local global_cwd = vim.fn.getcwd(-1, -1) api.tree.change_root(global_cwd) end -kmap("n", "<C-c>", change_root_to_global_cwd, opts) +kmap("n", "<C-c>", change_root_to_global_cwd, { noremap = true, silent = true, desc = "Change tree root to CWD" }) diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua index 02bc40c..9595d51 100644 --- a/nvim/lua/plugins/telescope.lua +++ b/nvim/lua/plugins/telescope.lua @@ -1,10 +1,10 @@ -require('telescope').setup{ +require("telescope").setup({ pickers = { buffers = { - initial_mode = 'normal' - } + initial_mode = "normal", + }, }, defaults = { - file_ignore_patterns = {"vendor", "node_modules"} - } -} + file_ignore_patterns = { "vendor", "node_modules" }, + }, +}) |
