304 lines
11 KiB
Lua
304 lines
11 KiB
Lua
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",
|
||
|
||
-- Разделение по умолчанию приведет к скачку ваших основных разделов при открытии боковой панели.
|
||
-- Чтобы предотвратить это, установите для параметра `splitkeep` значение `screen` или `topline`.
|
||
splitkeep = "screen"
|
||
}
|
||
|
||
-- Когда значение '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
|