通过外部 program/filter 重写传出 messages/posts

rewrite outgoing messages/posts by external program/filter

我想通过外部过滤器重写完整的 emacs-gnus messages/posts(headers 和 body) (外部 program/script,STDIN 到 STDOUT)。
怎么做?

将您的函数添加到 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))

显然你不必诉诸 shell 命令,你的 lisp 函数可以做更多。

备注:

  1. 这个钩子是运行"quite early";您可能想改用 message-send-mail-hook - 它是 运行 "very late".

  2. 我重申一下:你在这里逆流而上。你想这样做。请在 emacs.SE 上提出一个单独的问题,描述您的 perl 脚本的作用,您将看到使用 Lisp 完成它是多么容易。