Можно ли отправить вывод из фильтра процесса в *Messages*
буфер и подавить вывод этого сообщения, появляясь в эхо-области, так что я могу одновременно использовать интерактивные команды, не minibuffer-prompt
стираясь при текущем выводе фильтра субпресса?
(defun rsync-process-filter (proc string)
(when (not (or
(string-match "files...\r" string)
(string-match "files to consider\n" string)))
(message "%s" string)))
РЕДАКТИРОВАТЬ (3 января 2015 г.): Ниже приведена ссылка на похожий вопрос, однако я пока не смог заставить его работать со строкой процесса, в которой точная строка неизвестна - заголовок темы: Emacs - Отключить некоторые сообщения минибуфера :
*Messages*
буфер - один из них связан с синхронизацией. Есть еще пара вещей, которые я не пробовал ( потому что я думал, что, возможно, было встроенное решение ), например, сделать *Messages*
буфер временно доступным для записи inhibit-read-only
и использовать insert
at point-max
- я не знаю, появится ли это в эхо-зона, а также. Я буду работать над этим снова этим вечером. , ,
M-x report-emacs-bug
и запросить это как функцию?
(let ((inhibit-read-only t)) (with-current-buffer (get-buffer-create "*Messages*") (goto-char (point-max)) (insert string)))
и разместил черновой ответ, который будет приемлем для принятия после истечения обязательного периода ожидания по собственному вопросу пользователя. Я отправил запрос на добавлениеreport-emacs-bug
: debbugs.gnu.org/cgi/bugreport.cgi?bug=19495
(messages-buffer)
для получения буфера , если вы придерживаетесь этого метода и обратите внимание, что (point-max)
это не всегда будет началом новой строки (например, использование C-g
).