Включите дату и время исходного сообщения в цитируемый ответ, используя emacs и gnus

Когда я использую одну из функций *-with-original для ответа на сообщение, используя gnus (message) в emacs, я получаю примерно такую ​​цитату:

"Doe, John" <[email protected]> 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" <[email protected]> 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))
            "[email protected]"))
        " wrote:\n")))

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

Конечный результат выглядит так:

On Fri, Oct 12, 2012 at 03:11:48 PM, John Doe <[email protected]> wrote:

person mgalgs    schedule 12.10.2012    source источник


Ответы (2)


на самом деле 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 :)

person kindahero    schedule 14.10.2012
comment
простые победы. это потрясающе. - person mgalgs; 01.11.2012

Вы можете установить функцию строки сообщения-цитирования на подходящую функцию, вставив заголовок:

(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")))
person perh    schedule 12.10.2012