2024-03-10 13:30:59 +03:00
|
|
|
|
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,
|
2024-03-23 10:05:10 +03:00
|
|
|
|
viminfo="'1000,f1",
|
|
|
|
|
|
|
|
|
|
-- Разделение по умолчанию приведет к скачку ваших основных разделов при открытии боковой панели.
|
|
|
|
|
-- Чтобы предотвратить это, установите для параметра `splitkeep` значение `screen` или `topline`.
|
|
|
|
|
splitkeep = "screen"
|
2024-03-10 13:30:59 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
-- Когда значение '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"] = "\\<Esc>[38;2;%lu;%lu;%lum"
|
|
|
|
|
vim["&t_8b"] = "\\<Esc>[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
|