Добрый день, Как наиболее компактно разместить сочетания клавиш в одном файле, где будут указаны базовые команды (перемещение, работа с окнами и т.д), а также отдельно команды для всех плагинов.
Дополнительно поставил плагин which-key, чтобы отображать доступные команды и попробовал запихнуть все в один файл с вызовом require(«имя_плагина») для доступа к его функциональности, но при запуске получил куча ошибок.
Как у меня выглядит файл настройки привязок клавиш:
local which_key = require("which-key")
local operators = {
mode = { 'n', 'x' },
{ "g", desc = "Другое (G)" },
{ "z", desc = "Другое (Z)" },
{ "!", desc = "Выполнить" },
{ "<", desc = "Сдвинуть влево" },
{ ">", desc = "Сдвинуть вправо" },
{ "v", desc = "Выбрать" },
{ "V", desc = "Выбрать строки" },
{ "c", desc = "Изменить" },
{ "d", desc = "Удалить" },
{ "gU", desc = "Регистр (верх.)" },
{ "gu", desc = "Регистр (нижн.)" },
{ "g~", desc = "Регистр (обрт.)" },
{ "gw", desc = "Форматировать" },
{ "r", desc = "Заменить" },
{ "y", desc = "Копировать" },
{ "~", desc = "Изменить регистр" },
{ "]", desc = "Область (вперед)" },
{ "[", desc = "Область (назад)" },
{ "zf", desc = "Создать вкладку" },
}
-- Далее определяю базовые команды для перемещения и т.д.
-- Для плагинов получается только так, соот. сочетания специфичные для работы внутри плагина приходится определять в его спеке
local filesys = {
preset = true,
mode = { 'n', 'x' },
{ "<c-f>", group = "Файлы" },
{ "<c-f>t", "<CMD>NvimTreeToggle<CR>", desc = "Показать проводник" },
{ "<c-f>f", "<CMD>Telescope find_files<CR>", desc = "Выполнить поиск по файлам" },
{ "<c-f>g", "<CMD>Telescope live_grep<CR>", desc = "Выполнить поиск по содержимому файлов" },
{ "<c-f>b", "<CMD>Telescope buffers<CR>", desc = "Выполнить поиск по буферу" },
{ "<c-f>?", "<CMD>Telescope help_tags<CR>", desc = "Выполнить поиск в справочных материалах" },
}
-- Добавляю их в which-key
which_key.add(operators)
which_key.add(navigation)
which_key.add(motions)
which_key.add(other_g)
which_key.add(other_z)
which_key.add(windows)
which_key.add(filesys)
Ну и в init.lua после загруки lazy добавляю require("keymaps").
Было бы конечно круто если можно было для привязки вообще не вызывать функции which-key, а создать только имена для групп, а он в свою очередь распростронял бы их на уже существующие сочетания клавиш.
Может у кого есть готовые конфиги, покидайте плиз.