Задать вопрос
serii81
@serii81
Я люблю phр...

Как избавиться от символов в lua?

Всем привет.
Я использую astronvim.
Установил copilot и задал горячую клавишу ctrl+l.
Вот сам код, сверху lua, внизу из плагина.
Файл mappings.lua
return {
  n = {
    ["b"] = { "<Plug>Sneak_S", desc = "Sneak back" },
    ["<M-l>"] = { ":wa<CR>", desc = "close all" },
    ["<leader>;"] = { ":vsplit<CR>", desc = "split" },
    ["<S-l>"] = {
      function() require("astronvim.utils.buffer").nav(vim.v.count > 0 and vim.v.count or 1) end,
      desc = "Next buffer",
    },
    ["<S-h>"] = {
      function() require("astronvim.utils.buffer").nav(-(vim.v.count > 0 and vim.v.count or 1)) end,
      desc = "Previous buffer",
    },
  },
  i = {
    ["<C-l>"] = { "copilot#Accept('\\<CR>')", desc = "copilot expand", silent = true, expr = true, script = true },
  },
}


-- imap <silent><script><expr> <C-J> copilot#Accept("\<CR>")
-- let g:copilot_no_tab_map = v:true


Так вот, експанд работает, только в конце появляются два непечатных символа `<80>@7`

Заранее благодарен за помощь.
  • Вопрос задан
  • 184 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
i229194964
@i229194964
Веб разработчик
local mappings = {
  n = {
    ["b"] = { "<Plug>Sneak_S", desc = "Sneak back" },
    ["<M-l>"] = { ":wa<CR>", desc = "close all" },
    ["<leader>;"] = { ":vsplit<CR>", desc = "split" },
    ["<S-l>"] = {
      function() require("astronvim.utils.buffer").nav(vim.v.count > 0 and vim.v.count or 1) end,
      desc = "Next buffer",
    },
    ["<S-h>"] = {
      function() require("astronvim.utils.buffer").nav(-(vim.v.count > 0 and vim.v.count or 1)) end,
      desc = "Previous buffer",
    },
  },
  i = {
    ["<C-l>"] = { "copilot#Accept('\\<CR>')", desc = "copilot expand", silent = true, expr = true, script = true },
  },
}

-- Функция для удаления непечатных символов
local function removeNonPrintableChars(str)
  return str:gsub("[%z\1-\31\127-\255]", "")
end

-- Удалить непечатные символы из значений таблицы mappings
for _, mode in pairs(mappings) do
  for _, mapping in pairs(mode) do
    if type(mapping) == "table" and mapping.desc then
      mapping.desc = removeNonPrintableChars(mapping.desc)
    end
  end
end

return mappings
Ответ написан
Vic_P
@Vic_P
интересующийся
"copilot#Accept('\\<CR>')"
Попробуйте так:
"copilot#Accept(<CR>)"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы