Как я могу сделать VIM отправить команду на сеанс экрана GNU - PullRequest
2 голосов
/ 03 октября 2009

Я пытаюсь выяснить, как скрипт vim отправляет сообщение на экранное окно gnu. у меня открыт сеанс экрана, а в одном окне - сеанс vim, а в другом - интерпретатор схемы. Когда я сохраняю сеанс vim, мне бы хотелось, чтобы он перезапустил интерпретатор в другом окне, загружающемся в новой среде. Я могу понять все, кроме того, как заставить ловушку «при сохранении» в vim отправить команду оболочки в другое «окно экрана», в результате чего скрипт завершится и перезапустится. если бы я мог понять, как отправлять команды, я мог бы убить процесс, а затем запустить новый - мне просто нужно убедиться, что он запускается в правильном «окне».

Ответы [ 2 ]

4 голосов
/ 03 октября 2009

Пусть vim выдает команды оболочки и использует screen -X для выдачи команд на экран. Некоторая перестановка :at <other-window> stuff <restart-command>. См. Раздел настройки man screen для дополнительных команд.

Например, если бы я был в окне 1 экрана, используя vim, и у меня был сеанс irb в окне 0, чтобы перезапустить сеанс irb, я бы сделал

:!screen -X at 0 stuff exit^Mirb^M

(^M введено с помощью CTRL-V Enter).

1 голос
/ 03 октября 2009

Если вам достаточно, чтобы интерпретатор схемы запускался каждые несколько секунд, вы можете просто запустить watch /path/to/scheme/interpreter /path/to/scheme/file во втором окне. Настройка временных интервалов, в которых watch запускает команды, может быть изменена с помощью параметров командной строки. Справочная страница watch содержит подробности.

...