No description
Find a file
2025-03-04 12:59:51 +03:00
ftplugin Remove prints 2025-02-02 18:05:53 +03:00
lua/custom Redo section snippets for python 2025-03-04 12:59:51 +03:00
plugin Move splitline from 80 to 99 symbols 2025-02-11 10:25:00 +03:00
.gitignore Add gitignore file 2024-11-03 08:52:16 +03:00
init.lua Add setting to toggle obsidian plugin 2025-02-10 09:21:11 +03:00
main.py Remap leader key for , 2025-01-31 22:33:00 +03:00
README.md Add setting to toggle obsidian plugin 2025-02-10 09:21:11 +03:00

Config refactor (v2.0)

Основные прицнипы формирования конфига

Root plugin папка

Скрипты в этой папке загружаются автоматически после инициализации neovim, но до загрузки файлов типа ftplugin/ или after/.

Plugins

Разберем на примере oil.nvim: Сначала базовые настройки, такие как инструкция откуда качать и всякие зависимости и атрибуты по типу приоритета кладутся в директорию custom/plugins в виде названия плагина:
lua/custom/plugins/oil.lua

return {
	"stevearc/oil.nvim",
	dependencies = { { "echasnovski/mini.icons", opts = {} } },
	config = function()
		require "custom/oil"
	end,
}

Затем, как можно видеть, сама функция настроек расположена отдельно в файле с идентичным названием, но в директории "повыше":
lua/custom/oil.lua

require("oil").setup{
	opts = {
		keymaps = {
			["g?"] = "actions.show_help",
        },
    },
}

Разница между ftplugin и after/ftplugin

Суть одна и та-же: загрузка конфигураций для конкретных типов файлов, однако:

ftplugin

Тут храняться настройки, которые будут применены до загразуки плагинов. Т.е. настройки, что определны где-то в настройках плагинов будут переписывать если что те, которые установлены для типов файлов тут

after/ftplugin

Настройки для типов файлов тут будут применены уже после того, как загрузится все содержимое neovim => эти настройки будут перегружать все то, что было настроено в плагинах

Включение / Выключение некоторых плагинов

Из за возникновения случаев, когда некоторые плагины на некоторых машинах не нужно включать (например obsidian мне нужен только на хостовых машинах, на удаленных он будет только мешать открывать .md файлы), то в init.lua у меня в самом начале устанавливаются для таких плагинов глобальные переменные со следующей семантикой:

vim.g.<plugin_name>_enabled = <type:bool>

Например:

vim.g.obsidian_enabled = false

Это позволяет динамически включать/выключать плагины без необходимости усложнять конфиг lazy

FAQ

Зачем так мучаться? Не проще все кидать в один файл?

Проще, но такое распараллеливание позволяет легче дебажить файлы настроек. Т.е. исправляя настройки мы можем просто sourceить файл настроек, не трогая конфигурации скачивания файлов, чтобы лишний раз не триггерить Lazy.

Что делать, если в checkhealth выдается ошибка luarocks not found?

Необходимо его установить по инструкции с сайта

Что делать, если при установке luarocks выдает ошибку что не найдены .h файлы?

Надо установить хэдеры lua командой:

sudo apt install liblua5.3-dev

checkhealth не может найти tree-sitter cli

Надо установить соответствующий npm пакет:

npm install -g tree-sitter-cli