Ответ Gnus с подписью сверху
Вопрос
В режиме подведения итогов, когда я нажимаю R для gnus-summary-reply-with-original или F для gnus-summary-followup-with-original, моя подпись вставляется под текстом исходного сообщения.
Как я могу сказать gnus, чтобы он вставил мою подпись в самом верху сообщения, перед цитируемым текстом оригинала?
Решение
Похоже, что это не опция, встроенная в Gnus (начиная с версии 5.10.8), поэтому вам нужно переопределить одну из встроенных функций следующим образом:
(eval-after-load "gnus-msg"
(defun gnus-inews-yank-articles (articles)
(let (beg article yank-string)
(goto-char (point-max)) ; put articles after signature
(insert "\n") ; and one extra newline
; was this (message-goto-body)
(while (setq article (pop articles))
(when (listp article)
(setq yank-string (nth 1 article)
article (nth 0 article)))
(save-window-excursion
(set-buffer gnus-summary-buffer)
(gnus-summary-select-article nil nil nil article)
(gnus-summary-remove-process-mark article))
(gnus-copy-article-buffer nil yank-string)
(let ((message-reply-buffer gnus-article-copy)
(message-reply-headers
;; The headers are decoded.
(with-current-buffer gnus-article-copy
(save-restriction
(nnheader-narrow-to-headers)
(nnheader-parse-naked-head)))))
(message-yank-original)
(setq beg (or beg (mark t))))
(when articles
(insert "\n")))
(push-mark)
(goto-char beg))))
Я завернул новое определение 'gnus-inews-yank-articles
в eval-after-load
сформируйте так, чтобы он был определен в соответствующее время.Очевидно, что если вы хотите разрешить настройку, создайте переменную и напишите соответствующий оператор if.
Другие советы
В версия для разработки Gnus (и GNU Emacs) вы можете установить переменную message-cite-reply-position
к `выше".
Я думаю, вы уже все знаете о ТОФУ а почему бы и нет, так что я не буду болтать об этом.