使用 emacs 和 gnus 在引用的回复中包含原始消息的日期和时间
Posted
技术标签:
【中文标题】使用 emacs 和 gnus 在引用的回复中包含原始消息的日期和时间【英文标题】:Include date and time of original message in quoted reply using emacs and gnus 【发布时间】:2012-10-03 16:42:59 【问题描述】:当我使用 *-with-original
函数之一在 emacs 中使用 gnus
(message
) 回复消息时,我得到类似于以下的引用:
"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 的行为与其他 MUA 一样,包括原始消息的日期和时间,例如:
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:
【问题讨论】:
【参考方案1】:其实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 中的行数更少 :)
【讨论】:
更简单的胜利。这是完美的。【参考方案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")))
【讨论】:
以上是关于使用 emacs 和 gnus 在引用的回复中包含原始消息的日期和时间的主要内容,如果未能解决你的问题,请参考以下文章