在使用emacs和gnus进行引用回复时,包括原始消息的日期和时间

9

当我在emacs中使用gnus (message)回复信息时,如果我使用*-with-original函数之一,我会得到类似于这样的引文:

"Doe, John" <johndoe@example.com> writes:

> Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
> Consectetuer adipiscing elit. Lorem ipsum dolor sit
> amet, consectetuer adipiscing elit.

我希望Gnus能够像其他包含原始消息日期和时间的邮件用户代理(MUAs)一样进行操作,例如:

On Thu 11 October 2012 09:20:12 "Doe, John" <johndoe@example.com> wrote:

> Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
> Consectetuer adipiscing elit. Lorem ipsum dolor sit
> amet, consectetuer adipiscing elit.

有没有办法改变引用的样式来实现这个目的?


更新2:我现在使用了一种更简单的解决方案,来自kindahero的答案:

(setq message-citation-line-function 'message-insert-formatted-citation-line)
(setq message-citation-line-format "On %a, %b %d %Y at %r, %f wrote:")

更新1:我最终采用了perh的解决方案:

(defun my-citation-line ()
  "Inserts name, email, and date"
  (when message-reply-headers
    (insert "On "
        (format-time-string "%a, %b %e, %Y at %r"
                (date-to-time (mail-header-date message-reply-headers)))
        ", "
        (or (gnus-extract-address-component-name (mail-header-from message-reply-headers))
        "Somebody")
        (format " <%s>"
            (or (gnus-extract-address-component-email (mail-header-from message-reply-headers))
            "somebody@example.com"))
        " wrote:\n")))

(setq message-citation-line-function 'my-citation-line)

最终效果如下所示:
On Fri, Oct 12, 2012 at 03:11:48 PM, John Doe <johndoe@example.com> wrote:
2个回答

9
实际上,Gnus 为您提供了格式化功能。
(setq message-citation-line-function 'message-insert-formatted-citation-line)
(setq message-citation-line-format "On %a, %b %d %Y, %f wrote:\n")

根据您的喜好更改变量。`format-time-string'有选项列表。在.emacs中可以减少行数 :)

简单胜出。这很完美。 - mgalgs

2

您可以将message-citation-line-function设置为适当的函数,并插入标题:

(setq message-citation-line-function 'my-citation-line)

作为示例,该函数提供名称和未标准化日期:
(defun my-citation-line ()
   "Inserts name and date"
   (when message-reply-headers
     (insert 
        (or (gnus-extract-address-component-name
         (mail-header-from message-reply-headers))
            "Somebody")
       ", "
       (mail-header-date message-reply-headers)))
       "\n")))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接