local default_opts = { noremap = true, silent = true } local function map(mode, l, r, opts) opts = opts or default_opts opts.buffer = bufnr vim.keymap.set(mode, l, r, opts) end local gs = package.loaded.gitsigns ----------------------------------------------------------- -- Базовые ----------------------------------------------------------- -- Системный буфер обмена -- map('v', '', '"+y', {}) -- 'Нажимает' на ESC при быстром нажатии jj map('i', 'оо', '') map('i', 'jj', '') -- Отключение стрелочек. Использовать hjkl map('', '', ':echoe "Use k"', {noremap = true, silent = false}) map('', '', ':echoe "Use j"', {noremap = true, silent = false}) map('', '', ':echoe "Use h"', {noremap = true, silent = false}) map('', '', ':echoe "Use l"', {noremap = true, silent = false}) -- Автоформат + сохранение по CTRL-s , как в нормальном, так и в insert режиме -- map('n', '', ':Autoformat:w', default_opts) -- map('i', '', ':Autoformat:w', default_opts) -- Переключение вкладок с помощью TAB или shift-tab (akinsho/bufferline.nvim) -- map('n', '', ':BufferLineCycleNext', default_opts) -- map('n', '', ':BufferLineCyclePrev', default_opts) -- Пролистнуть на страницу вниз / вверх (как в браузерах) -- map('n', '', ' zz', default_opts) -- map('n', '', ' zz', default_opts) -- " Переводчик рус -> eng -- map('v', 't', '(VTranslate)', {}) ----------------------------------------------------------- -- Плагины ----------------------------------------------------------- -- telescope local builtin = map('n', 'ff', require('telescope.builtin').find_files) map('n', 'fg', require('telescope.builtin').live_grep) -- vim.keymap.set('n', 'fb', builtin.buffers, {}) -- vim.keymap.set('n', 'fh', builtin.help_tags, {}) -- NeoTree map('n', 't', ':Neotree toggle') -- GitSigns map('n', ']c', function() if vim.wo.diff then return ']c' end vim.schedule(function() gs.next_hunk() end) return '' end, {expr=true}) map('n', '[c', function() if vim.wo.diff then return '[c' end vim.schedule(function() gs.prev_hunk() end) return '' end, {expr=true}) map('n', 'gs', gs.stage_hunk) map('n', 'gr', gs.reset_hunk) -- map('v', 'hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end) -- map('v', 'hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end) map('n', 'gS', gs.stage_buffer) map('n', 'gu', gs.undo_stage_hunk) -- map('n', 'hR', gs.reset_buffer) map('n', 'gp', gs.preview_hunk) map('n', 'gb', function() gs.blame_line{full=true} end) -- map('n', 'tb', gs.toggle_current_line_blame) map('n', 'gd', gs.diffthis) map('n', 'gD', function() gs.diffthis('~') end) map('n', 'gtd', gs.toggle_deleted) ----------------------------------------------------------- -- F1 .. F12 ----------------------------------------------------------- -- По F1 очищаем последний поиск с подсветкой map('n', '', ':nohl') -- перечитать конфигурацию nvim map('n', '', ':so ~/.config/nvim/init.lua:so ~/.config/nvim/lua/plugins.lua:so ~/.config/nvim/lua/base.lua:so ~/.config/nvim/lua/keymaps.lua', { noremap = true }) -- Открыть всю nvim конфигурацию для редактирования map('n', '', ':e ~/.config/nvim/init.lua:e ~/.config/nvim/lua/plugins.lua:e ~/.config/nvim/lua/base.lua:e ~/.config/nvim/lua/keymaps.lua', { noremap = true }) -- Поиск слова под курсором map('n', '', [[lua require('telescope.builtin').grep_string()]]) -- Поиск слова в модальном окошке map('n', '', [[lua require('telescope.builtin').live_grep()]]) -- разные вариации нумераций строк, можно переключаться map('n', '', ':exec &nu==&rnu? "se nu!" : "se rnu!"') -- дерево файлов. map('n', '', ':NvimTreeRefresh:NvimTreeToggle') -- Показ дерева классов и функций, плагин majutsushi/tagbar map('n', '', ':TagbarToggle') -- Проверка орфографии для русского и английского языка map('n', '', ':set spell!') map('i', '', ':set spell!')