В Emacs получение вывода команды, отправленной в буфер через Emacs-Lisp - PullRequest
1 голос
/ 01 июля 2011

Я хотел бы написать небольшой скрипт на ELisp, который бы:

  1. отправлял команду в указанный буфер
  2. получал бы ее вывод
  3. анализировал ее
  4. отправить его в другой буфер

Я борюсь с пунктом 2: я не могу получить вывод команды.Например, если у меня включен буфер оболочки, я могу использовать

(process-send-string "shell" "help\n")

, чтобы отправить «помощь» в мой буфер оболочки.Затем он покажет список доступных команд.Но как я могу заставить этот список использовать его где-то еще?

Спасибо,

S4m

Ответы [ 3 ]

1 голос
/ 01 июля 2011

Я не знаю точных команд emacs для этого на макушке, но одним из вариантов было бы сделать следующее:

  • Установить метку в буфере оболочки прямо подкомандная строка
  • Выполнить команду.
  • Переместить точку в конец файла и уничтожить текст между ним и меткой.
  • Перейти к буферу назначения и нажатьтекст туда.
1 голос
/ 02 июля 2011

Рассматривали ли вы использование функций shell-command или shell-command-to-string?

Не «отправлять команду в буфер», как вы просили, но они оба позволяют выполнять команду через процесс, который будет запущен только для этой цели, и либо выгружать вывод в целевой буфер, либо собирать его в строку.

1 голос
/ 01 июля 2011

(buffer-string) возвращает содержимое текущего буфера, поэтому (with-current-buffer <buf> (buffer-string)) возвращает содержимое <buf>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...