Xterm, Vim, PyQt

У меня есть приложение PyQt, в котором оно порождает окно XTerm в виджете. Окно XTerm запускается с помощью -e vim <file>, который немедленно запускает Vim, отображая файл для редактирования и т. д.

Когда я нажимаю :w! в Vim, я хотел бы каким-то образом поймать это событие и передать его обратно в XTerm и/или в конечном итоге вернуться к PyQt, чтобы я мог изменить другой элемент пользовательского интерфейса.

Я знаю, как использовать автокоманду Vim для перехвата :w! (BufWritePost) и выполнения сценария оболочки и т. д.

... но я думаю, что мне нужно, чтобы Vim ответил эхом, либо с помощью простого текста ASCII, либо через СИГНАЛ, обратно в окно XTerm и, надеюсь, обратно в QProcess.

Поэтому я думаю, что ключ в том, чтобы понять, как сказать XTerm сделать это, но я немного в тупике и открыт для любых предложений о том, как это сделать.
Заранее всем спасибо.


person TartarSauce    schedule 04.08.2015    source источник


Ответы (1)


Ваш сценарий должен учитывать, что XTerm не будет выполнять эхо (текст, отображаемый/распечатываемый в терминале, переходит на экран терминала). Ваш сценарий должен будет либо заставить vim что-то передать в файл, либо запустить vim (в xterm) из вспомогательного сценария, который передаст информацию обратно в файл.

Обычно это делается путем выделения временного файла в родительском процессе (вашем приложении PyQt) и передачи его имени дочернему процессу.

person Thomas Dickey    schedule 25.08.2016