Как сделать шаблонный текст для использования с ответами на электронную почту Emacs Gnus?
4 ответа
AbbrevMode работает в Gnus.
По этой ссылке (с некоторыми изменениями):
Определение аббревиатур
Введите слово, которое вы хотите использовать в качестве расширения, а затем введите «Cx a g» и сокращение для него. Пример:
Это текст вступительного абзаца.Esc h Ctrl - u 0 Ctrl - x a g открыть Возврат
Я: Это ноль после C-u
. Вместе они делают сокращенное определение C-x a g
применимым к выбранной области, которая в данном случае является абзацем, который выбрал M-h
(Esc-h
или Alt-h
). Определение аббревиатуры может быть применено только к текущему основному режиму, а не глобально, используя C-x a l
(это "ell" вместо "g").
Сохранение аббревиатур
Используйте «Mx write-abbrev-file» и просто нажмите «RET», когда спросите имя файла. По умолчанию используется «~/.abbrev_defs». В будущем Emacs должен автоматически сохранять сокращения при выходе из Emacs.
Кроме того, если вы хотите, чтобы сокращения сохранялись всякий раз, когда вы сохраняете файлы (Cx s) или выходите из emacs, добавьте в ваш .emacs следующее:
(setq save-abbrevs t)
Восстановление аббревиатур
Используйте 'Mx read-abbrev-file', чтобы прочитать сокращения, или, что еще лучше, добавьте следующее в ваш файл ~/.emacs:
(Тихо-чтения Abbrev-файл)
Это будет читать определения из файла по умолчанию, «~/.abbrev_defs».
Использование сокращений
«Mx abbrev-mode» переключает режим «Abbrev». Вы также можете поместить следующее в ваш файл ~/.emacs, если хотите, чтобы он всегда был включен:
(abbrev-mode 1) На самом деле, вам, возможно, придется сделать:
(setq default-abbrev-mode t) Я не совсем уверен, почему.
я снова: как только режим abbrev включен, ввод аббревиатуры и пробела приводит к его немедленному расширению. Однако, если вы не хотите, чтобы это происходило, вы можете отключить его и развернуть их вручную следующим образом:
открыть Ctrl - x a e
будет выглядеть так:
Это текст вступительного абзаца.
Вы также можете попробовать YASnippet, который позволит вам добавлять полные части текста котельной плиты, где это необходимо.
В простейшем случае вы можете сделать что-то вроде этого:
(setq my-F3-keymap (make-sparse-keymap))
(global-set-key [(f3)] my-F3-keymap)
(define-key my-F3-keymap [(n)]
(function
(lambda ()
"insert now is..."
(interactive)
(insert "Now is the time for all good men to come to the aid of their country."))))
(define-key my-F3-keymap [(N)]
(function
(lambda ()
"insert now is... with newlines"
(interactive)
(insert "Now is the time\nfor all good men\nto come to the aid\nof their country."))))
(define-key my-F3-keymap [(f)]
(function
(lambda ()
"insert external file contents"
(interactive)
(insert-file "c:/temp/foo.html"))))
Gnus использует Message-Mode для создания сообщений, так что, возможно, у него есть некоторые специальные функции для него.
Для этого я бы использовал пользовательский хук в message-setup-hook
(который спрашивает меня, что я хочу спросить, и создаю шаблон). Обратите внимание, что этот хук вызывается как для электронной почты, так и для новостей usenet, как для новых сообщений, так и для ответов. Но должно быть легко отличить эти случаи от содержимого буфера.