vim.api.nvim_set_keymap("n", "", ":lua SaveAndRunScript()", { noremap = true, silent = true }) function SaveAndRunScript() -- Проверяем, что открыт именно буфер ~/cigan/ui.md local current_buf = vim.api.nvim_buf_get_name(0) local target_file = vim.fn.expand("~/desktop/govno/ui.md") if current_buf ~= target_file then vim.notify("Ошибка: Открыт не файл ~/desktop/govno/ui.md", vim.log.levels.ERROR) return end -- Сохраняем изменения в текущем файле vim.cmd("write") vim.notify("Файл сохранен.", vim.log.levels.INFO) -- Запускаем скрипт ~/cigan/interface.py асинхронно local script_path = vim.fn.expand("~/dev/cigan/interface.py") vim.notify("Запуск скрипта: " .. script_path, vim.log.levels.INFO) vim.fn.jobstart("bash " .. script_path, { on_stdout = function(_, data) vim.notify("STDOUT: " .. table.concat(data, "\n"), vim.log.levels.INFO) end, on_stderr = function(_, data) vim.notify("STDERR: " .. table.concat(data, "\n"), vim.log.levels.ERROR) end, on_exit = function(_, exit_code) if exit_code ~= 0 then vim.notify("Ошибка при выполнении скрипта. Код выхода: " .. exit_code, vim.log.levels.ERROR) return end -- Обновляем буфер ~/cigan/ui.md и переходим в конец файла vim.cmd("edit") vim.cmd('echo "Сгенерировано!"') end, }) end vim.api.nvim_set_keymap('n', 'y', ':lua CheckBufferAndRun()', { noremap = true, silent = false }) function CheckBufferAndRun() -- Получаем полный путь к текущему файлу local current_file = vim.fn.expand('%:p') -- Путь к целевому файлу local target_file = vim.fn.expand('~/desktop/govno/ui.md') -- Проверяем, совпадает ли текущий файл с целевым if current_file == target_file then -- Выполняем скрипт на удаленном сервере через SSH vim.cmd('!ssh xer@dev "~/cigan/new_chat.sh"') vim.cmd('echo "Новый чат создан!"') else -- Выводим сообщение об ошибке vim.cmd('echo "Ошибка: Эта команда работает только в файле ~/desktop/govno/ui.md"') end end