--[[ nvim-neo-tree/neo-tree ]] -- Открыть интерфейс с древовидным отображением файлов vim.keymap.set({ 'n', 'i', 'v', 't' }, '', 'NeoTreeRevealToggle', { noremap = true }) -- [[ folke/trouble.nvim ]] vim.keymap.set({ 'n', 'i', 'v', 't' }, '', 'TroubleToggle', { noremap = true }) --[[ onsails/diaglist.nvim ]] -- Открыть интерфейс диагностики vim.keymap.set('n', 'dw', 'lua require(\'diaglist\').open_all_diagnostics()', { noremap = true }) vim.keymap.set('n', 'd0', 'lua require(\'diaglist\').open_buffer_diagnostics()', { noremap = true }) --[[ noib3/nvim-cokeline ]] -- Переключение вкладок vim.keymap.set('n', '', '(cokeline-focus-next)', { noremap = true, silent = true }) vim.keymap.set('n', '', '(cokeline-focus-prev)', { noremap = true, silent = true }) --[[ neovim/nvim-lspconfig ]] -- Диагностика vim.keymap.set('n', 'e', vim.diagnostic.open_float, { noremap = true, silent = true }) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { noremap = true, silent = true }) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { noremap = true, silent = true }) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { noremap = true, silent = true }) -- Инициализация только после того, как LSP-сервер подключится к текущему буферу lspconfig_on_attach = function(client, bufnr) -- Активация завершения vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') vim.keymap.set({ 'n', 'v', 't' }, 'F', function() vim.lsp.buf.format { async = true } end, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'K', vim.lsp.buf.hover, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', '', vim.lsp.buf.signature_help, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, { noremap = true, silent = true, buffer = bufnr }) vim.keymap.set('n', 'gr', vim.lsp.buf.references, { noremap = true, silent = true, buffer = bufnr }) end -- Formatting vim.keymap.set({ 'n', 'v', 't' }, 'F', function() if (vim.bo.filetype == 'nginx') then -- NGINX configuration file vim.api.nvim_exec('w', false) vim.api.nvim_exec('! nginxbeautifier -i %', false) vim.api.nvim_exec('redraw', false) elseif (vim.lsp.buf.server_ready()) then -- LSP-server is ready vim.lsp.buf.format { async = true } else -- LSP-server not found vim.api.nvim_exec('PrettierAsync', false) end end, { noremap = true, silent = true, buffer = bufnr }) --[[ lewis6991/gitsigns.nvim ]] -- Инициализация только после того, как LSP-сервер подключится к текущему буферу gitsigns_on_attach = function(bufnr) -- Инициализация ярлыка local gs = package.loaded.gitsigns -- Навигация vim.keymap.set('n', ']c', function() if vim.wo.diff then return ']c' end vim.schedule(function() gs.next_hunk() end) return '' end, { expr = true, buffer = bufnr }) -- Навигация vim.keymap.set('n', '[c', function() if vim.wo.diff then return '[c' end vim.schedule(function() gs.prev_hunk() end) return '' end, { expr = true, buffer = bufnr }) vim.keymap.set('n', 'hs', 'Gitsigns stage_hunk', { buffer = bufnr }) vim.keymap.set('v', 'hs', 'Gitsigns stage_hunk', { buffer = bufnr }) vim.keymap.set('n', 'hr', 'Gitsigns reset_hunk', { buffer = bufnr }) vim.keymap.set('v', 'hr', 'Gitsigns reset_hunk', { buffer = bufnr }) vim.keymap.set('n', 'hS', gs.stage_buffer, { buffer = bufnr }) vim.keymap.set('n', 'hu', gs.undo_stage_hunk, { buffer = bufnr }) vim.keymap.set('n', 'hR', gs.reset_buffer, { buffer = bufnr }) vim.keymap.set('n', 'hp', gs.preview_hunk, { buffer = bufnr }) vim.keymap.set('n', 'hb', function() gs.blame_line { full = true } end, { buffer = bufnr }) vim.keymap.set('n', 'tb', gs.toggle_current_line_blame, { buffer = bufnr }) vim.keymap.set('n', 'hd', gs.diffthis, { buffer = bufnr }) vim.keymap.set('n', 'hD', function() gs.diffthis('~') end, { buffer = bufnr }) vim.keymap.set('n', 'td', gs.toggle_deleted, { buffer = bufnr }) vim.keymap.set('o', 'ih', 'Gitsigns select_hunk', { buffer = bufnr }) vim.keymap.set('x', 'ih', 'Gitsigns select_hunk', { buffer = bufnr }) end --[[ nvim-telescope/telescope.nvim ]] -- Инициализация ярлыка local builtin = require('telescope.builtin') -- Поиск файла vim.keymap.set('n', 'ff', builtin.find_files, { noremap = true, silent = true }) -- grep vim.keymap.set('n', 'fg', builtin.live_grep, { noremap = true, silent = true }) -- Буферы? vim.keymap.set('n', 'fb', builtin.buffers, { noremap = true, silent = true }) -- Помощь vim.keymap.set('n', 'fh', builtin.help_tags, { noremap = true, silent = true }) --[[ windwp/nvim-autopairs ]] -- Переназначение стандартных сочетаний клавиш для "ms-jpq/coq_nvim" --vim.keymap.set('i', '', [[pumvisible() ? "" : ""]], {expr = true, noremap = true}) --vim.keymap.set('i', '', [[pumvisible() ? "" : ""]], {expr = true, noremap = true}) --vim.keymap.set('i', '', [[pumvisible() ? "" : ""]], {expr = true, noremap = true}) --vim.keymap.set('i', '', [[pumvisible() ? "" : ""]], {expr = true, noremap = true}) _G.PairIT = function() local autopairs = { ['('] = ')', ['['] = ']', ['{'] = '}', ['<'] = '>', [ [=[']=] ] = [=[']=], [ [=["]=] ] = [=["]=], } local set_pairs = vim.keymap.set for k, v in pairs(autopairs) do set_pairs('i', k, function() return k .. v .. '' end, { expr = true, noremap = true }) end end --[[ b3nj5m1n/kommentary ]] vim.keymap.set('n', 'cic', 'kommentary_line_increase', { noremap = true, silent = true }) vim.keymap.set('n', 'ci', 'kommentary_motion_increase', { noremap = true, silent = true }) vim.keymap.set('x', 'ci', 'kommentary_visual_increase', { noremap = true, silent = true }) vim.keymap.set('n', 'cdc', 'kommentary_line_decrease', { noremap = true, silent = true }) vim.keymap.set('n', 'cd', 'kommentary_motion_decrease', { noremap = true, silent = true }) vim.keymap.set('x', 'cd', 'kommentary_visual_decrease', { noremap = true, silent = true }) --[[ preservim/tagbar ]] vim.keymap.set({ 'n', 'i', 'v', 't' }, '', 'TagbarToggle', { noremap = true, silent = true }) --[[ simrat39/symbols-outline.nvim ]] vim.keymap.set({ 'n', 'i', 'v', 't' }, '', 'SymbolsOutline', { noremap = true, silent = true })