local M = {} local opt = vim.opt local g = vim.g local cmd = vim.cmd M.load = function() local options = { -- количество экранных строк для использования в командной строке cmdheight = 0, -- копирование вставка между vim и всем остальным (allows neovim to access the system clipboard) clipboard = "unnamedplus", -- LVIM creates a backup file backup = false, -- всплывающее меню для отображения возможных вариантов завершения. completeopt = { "menuone", "noselect" }, -- скрытый уровень отключен и текст в `` можно видеть conceallevel = 0, -- входная и выходная кодировка fileencoding = "utf-8", encoding = "utf-8", -- LVIM set to "nvim_treesitter#foldexpr()" for treesitter based folding -- LVIM folding, set to "manual" for treesitter based folding foldmethod = "expr", foldexpr = "nvim_treesitter#foldexpr()", -- устанавливает максимальное вложение складок foldnestmax = 10, -- устанавливает уровень сворачивания: складки с более высоким уровнем будут закрыты. -- Установка этого параметра на ноль закроет все складки . Чем больше число, тем меньше складок . foldlevel = 2, foldlevelstart = 20, -- LVIM the font used in graphical neovim applications guifont = "monospace:h17", -- LVIM required to keep multiple buffers and open multiple buffers hidden = true, -- LVIM highlight all matches on previous search pattern hlsearch = true, -- игнорировать регистр в шаблонах поиска.p ignorecase = true, -- разрешает использование мыши mouse = "a", -- pop up menu height pumheight = 10, -- we don't need to see things like -- INSERT -- anymore showmode = false, -- если ее включить, то будет линии вверху showtabline = 0, -- переопределять значение «IGNORECASE» вариант, если поиск шаблон содержит верхний регистра символов. Используется только при вводе шаблона поиска smartcase = true, -- горизонтальное разделение идет ниже splitbelow = true, -- вертикально разделение идет вправо splitright = true, -- creates a swapfile swapfile = false, -- установите цвета графического интерфейса term (большинство терминалов поддерживают это) termguicolors = true, -- время ожидания завершения отображаемой последовательности (в миллисекундах) timeoutlen = 400, -- LVIM set the title of window to the value of the titlestring -- так и не понял т.к. ни разу не увидел результат работы этого -- title = true, -- titlestring = "%<%F%=%l/%L - nvim", -- включено, т.е. если закрыть файл и потом открыть то все равно можно будет делать отмену изменений undofile = true, -- более быстрое завершение (по умолчанию 4000 мс) updatetime = 100, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited writebackup = false, -- конвертирование табы в space expandtab = true, -- количество пробелов, вставленных для каждого отступа shiftwidth = 2, -- вставьте 2 пробела для табуляции tabstop = 2, -- highlight the current line cursorline = true, -- оставляет выделение только номера строки cursorlineopt = "number", -- устанавливает видимость линий number = true, -- ширина столбца с цифрами строко numberwidth = 2, -- всегда показывайте столбец со знаком, в противном случае текст каждый раз будет смещаться signcolumn = "yes", -- display lines as one long line wrap = false, -- не читать из глобального хранилища shadafile = "NONE", -- начинать скролить за ... строк до конца экрана scrolloff = 12, -- LVIM начинать скролить за ... строк до конца экрана sidescrolloff = 12, -- показывать курсор все время ruler = true, -- LVM что то связанное со статусной строкой TODO: ПРОВЕРИТЬ !!! -- у меня до LVM стояло 0 laststatus = 3, -- LVIM что-то связаннное с показом вводимых команд showcmd = false, -- НЕ РАССМОТРЕННЫЕ В LVIM -- делает умный автоотступ (make indenting smarter again) smartindent = true, -- установите относительные пронумерованные строки relativenumber = true, -- не переррисовывать все время https://stackoverflow.com/questions/9341768/vim-response-quite-slow/55501120#55501120 lazyredraw = true, -- -- макс длина линий для подсветки -- synmaxcol = 1024, -- новый движок регулярных выражений -- с ним осторожнее т.к. что-то там не поддерживается -- в command_line -- regexpengine = 1, -- делает отступы в зависимости от expandtab. так в док. написано. smarttab = true, -- автоотступ autoindent = true, -- исправляет поведение backspace на большинстве терминалов. backspace = "indent,eol,start", -- -- рабочий каталог всегда будет таким же, как и ваш рабочий каталог -- autochdir = true, -- граница кода (черта вертикальная) colorcolumn = "320", -- transparent menu pumblend = 50, -- transparent popup winblend = 5, -- softtabstop softtabstop = 2, -- disable tilde on end of buffer: https://github.com/neovim/neovim/pull/8546#issuecomment-643643758 fillchars = { eob = " " }, -- Устанавливает режимы, в которых текст в строке курсора также может быть скрыт. concealcursor = "vin", wildignorecase = true, viminfo="'1000,f1" } -- Когда значение 'verbose' не равно нулю, печатаются сообщения (для отладки в stderr). cmd [[set verbose=0]] -- HERE -- попробовать -- отключает коментарии пред новыми строками ( попробовать если не рабортает qrn1) cmd [[set formatoptions-=cro]] -- HERE -- а может стоит отключить это ??? cmd [[let g:ale_cpp_clangd_options = "-std=c++20"]] for k, v in pairs(options) do opt[k] = v end -- ------------------------------- -- HERE -- проверить то что ниже ВСЕ. нужно оно или нет -- И перенести чтокасается opt в конфигурацию выше (если это нужно) -- Так же проверить все выше, зачем это и что это такое и остаитьв коменты там где их нет -- ------------------------------- -- перенести linebreak в нужную часть кода -- это перености сткроки по пробелам или по знакам припинания vim.wo.linebreak = true -- позволит вашему курсору выйти за конец строки на один символ vim.opt.virtualedit = { "block", "onemore" } -- очевидно вроде vim.opt.shell = "/bin/zsh" -- совместимость с st, true colors vim["&t_8f"] = "\\[38;2;%lu;%lu;%lum" vim["&t_8b"] = "\\[48;2;%lu;%lu;%lum" opt.termguicolors = true -- просто отключает подробные обычные сообщения.(см. :h shortmess) opt.shortmess:append "c" -- переход к предыдущей / следующей строке с помощью h, l, стрелки влево и стрелки вправо, когда курсор достигает конца / начала строки opt.whichwrap:append "<,>,[,],h,l" -- отключить проверку орфографии для азиатских символов (алгоритм VIM ее не поддерживает) opt.spelllang:append "cjk" -- отключаем некоторые vim плагины local disabled_plugins = { "2html_plugin", "getscript", "getscriptPlugin", "gzip", "logipat", "netrw", "netrwPlugin", "netrwSettings", "netrwFileHandlers", "matchit", "tar", "tarPlugin", "rrhelper", "spellfile_plugin", "vimball", "vimballPlugin", "zip", "zipPlugin", "tutor", "rplugin", "syntax", "synmenu", "optwin", "compiler", "bugreport", "ftplugin" } local default_providers = { "node", "perl", "python3", "ruby", "filetype" } for _, plugin in pairs(disabled_plugins) do g["loaded_" .. plugin] = 1 end for _, provider in ipairs(default_providers) do g["loaded_" .. provider .. "_provider"] = 0 end -- Автоматическое удаление завершающих новых строк при записи файла -- не рабботает с md файлами -- Remember foldings vim.cmd [[ augroup remember_folds autocmd! autocmd BufWinLeave * silent! mkview autocmd BufWinEnter * silent! loadview augroup end ]] end return M