Я хотел бы переписать полностью составленные Emacs-гну сообщения/сообщения (заголовки и тело) с помощью внешнего фильтра (внешняя программа/скрипт, STDIN в STDOUT).
Как это сделать?переписать исходящие сообщения/сообщения от внешней программы/фильтр
0
A
ответ
1
Добавить функцию message-send-hook
:
(add-hook 'message-send-hook 'my-message-rewrite)
(defun my-message-rewrite()
"Pipe the current message buffer through the command and replace it with the output."
(shell-command-on-region (point-min) (point-max)
"my command line with args"
t t))
Очевидно, что вы не должны прибегать к команде оболочки, ваша сюсюкать функция может сделать гораздо больше.
Примечания:
Этот хук запускается "довольно рано"; вы можете использовать вместо этого
message-send-mail-hook
- он запускается «очень поздно».Позвольте мне повторить: вы плаваете против ручейка здесь. Вы делаете не хотите это сделать. Пожалуйста, задайте отдельный вопрос об emacs.SE, описывающий, что делает ваш скрипт perl, и вы увидите, насколько это проще сделать с Lisp.
Мое умение perl намного лучше, чем мои навыки (e) lisp :-) – AnFi
Когда-то я тоже что-то сказал. С тех пор я учился лучше. Lisp настолько мощнее, проще в использовании, отлаживать, развиваться, учиться! – sds
Кажется, что скрипт получает тело сообщения onlt. Я хотел переписать полное сообщение (заголовки и тело) - извините за недостаток точности. – AnFi