--------------------------------------------------------------------------[[ФУНКЦИОНАЛ]]-------------------------------------------------------------------------- -- Установка клавиши Leader на пробел vim.g.mapleader = " " vim.cmd([[autocmd BufRead,BufNewFile config_zero setfiletype i3config]]) -- CUSTOM MOVE -- NORMAL vim.keymap.set('n', 'h', '', { noremap = true, silent = true }) vim.keymap.set('n', 'j', 'h', { noremap = true, silent = true }) vim.keymap.set('n', 'k', 'j', { noremap = true, silent = true }) vim.keymap.set('n', 'l', 'k', { noremap = true, silent = true }) vim.keymap.set('n', ';', 'l', { noremap = true, silent = true }) -- VISUAL vim.keymap.set('v', 'h', '', { noremap = true, silent = true }) vim.keymap.set('v', 'j', 'h', { noremap = true, silent = true }) vim.keymap.set('v', 'k', 'j', { noremap = true, silent = true }) vim.keymap.set('v', 'l', 'k', { noremap = true, silent = true }) vim.keymap.set('v', ';', 'l', { noremap = true, silent = true }) -- Настройка выхода из режима ввода через Atl+i vim.api.nvim_set_keymap('i', '', '', { noremap = true, silent = true }) -- Настройка терминала vim.api.nvim_set_keymap('n', 't', ':terminal', { noremap = true, silent = true }) vim.api.nvim_set_keymap('t', '', '', { noremap = true, silent = true }) -- установить время ожидания в 200 миллисекунд vim.o.timeoutlen = 300 -- СИСТЕМНЫЙ БУФЕР -- Копирование в системный буфер vim.api.nvim_set_keymap('v', 'y', '"+y', { noremap = true, silent = true }) -- Вставка из системного буфера vim.api.nvim_set_keymap('n', 'p', '"+p', { noremap = true, silent = true }) -- Вырезание в системный буфер vim.api.nvim_set_keymap('v', 'x', '"+x', { noremap = true, silent = true }) -- Включаем поддержку undo vim.opt.undofile = true -- Указываем директорию для хранения файлов undo vim.opt.undodir = "/tmp/nvim-changes/" -- Функции для табуляции выделенной области local function tab_selected() vim.cmd('normal! >gv') -- Сдвиг вправо и возврат к выделению end local function shift_tab_selected() vim.cmd('normal! ', tab_selected, { noremap = true, silent = true }) vim.keymap.set('v', '', shift_tab_selected, { noremap = true, silent = true }) --[[ Поиск ]]-- -- Игнорировать регистр при поиске vim.opt.ignorecase = true -- Не игнорировать регистр, если есть символы в верхнем регистре vim.opt.smartcase = true -- Подсвечивать найденные текстовые объекты vim.opt.showmatch = true --------------------------------------------------------------------------[[ВИЗУАЛ]]-------------------------------------------------------------------------- vim.o.laststatus = 0 -- Отключает строку состояния vim.cmd("colorscheme tokyonight-night") --vim.cmd("colorscheme gruvbox") --vim.cmd("colorscheme astra") -- Применение темы --vim.cmd("colorscheme kanagawa") -- Основная схема --vim.cmd("colorscheme kanagawa-wave") -- Более светлая версия --vim.cmd("colorscheme kanagawa-dragon")-- Более тёмная версия --vim.cmd("colorscheme kanagawa-lotus") -- Альтернативная палитра --vim.cmd("colorscheme nightfly") --vim.cmd("colorscheme randomhue") vim.defer_fn(function() vim.opt.laststatus = 0 end, 35) local laststatus_values = {0, 3} local current_index = 1 vim.keymap.set('n', '', function() current_index = current_index % #laststatus_values + 1 vim.opt.laststatus = laststatus_values[current_index] end, { noremap = true, silent = true }) -- Для Mutton local normal_bg = vim.fn.synIDattr(vim.fn.hlID("Normal"), "bg") vim.api.nvim_set_hl(0, "EndOfBuffer", { fg = normal_bg} ) -- overrides `~` character at the end of buffer vim.api.nvim_set_hl(0, "VertSplit", { fg = normal_bg} ) -- overrides `~` character at the end of buffer vim.api.nvim_set_hl(0, "WinSeparator", { fg = normal_bg }) local function run_once_on_md() local executed = false -- Флаг для отслеживания выполнения vim.api.nvim_create_autocmd("BufEnter", { pattern = "*.md", callback = function() if not executed then vim.defer_fn(function() vim.cmd("MuttonToggle") -- Выполнение команды через 200 мс end, 1) executed = true -- Установить флаг после выполнения end end, }) end run_once_on_md() --vim.opt.number = true -- Включить абсолютную нумерацию слева --vim.opt.relativenumber = true -- Включить относительную нумерацию справа vim.api.nvim_set_hl(0, "SignColumn", { bg = "None", fg = "#abb2bf" }) -- прозрачный фон -- Определение функции для переключения number и relativenumber local function toggle_number_and_relativenumber() local number = vim.opt.number:get() local relativenumber = vim.opt.relativenumber:get() if number and relativenumber then -- Если обе включены, выключаем их vim.opt.number = false vim.opt.relativenumber = false else -- Если обе выключены, включаем их vim.opt.number = true vim.opt.relativenumber = true end end -- Привязка функции к n vim.keymap.set('n', 'n', toggle_number_and_relativenumber, { desc = 'Toggle number and relativenumber' }) vim.cmd [[ autocmd TermOpen * setlocal nonumber norelativenumber ]] vim.opt.cmdheight = 0 -- disable netrw at the very start of your init.lua vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 -- Включаем поддержку цветовой схемы vim.opt.termguicolors = true vim.opt.textwidth = 100