LINUX.ORG.RU

NVim сочетания клавиш

 


0

1

Добрый день, Как наиболее компактно разместить сочетания клавиш в одном файле, где будут указаны базовые команды (перемещение, работа с окнами и т.д), а также отдельно команды для всех плагинов.

Дополнительно поставил плагин 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, а создать только имена для групп, а он в свою очередь распростронял бы их на уже существующие сочетания клавиш.

Может у кого есть готовые конфиги, покидайте плиз.

Для того чтобы оставить комментарий войдите или зарегистрируйтесь.