(ВНИМАНИЕ: Это первый код elisp, который я когда-либо написал, и который имеет длину более 3 строк, это может быть ужасный код. Но, похоже, это работает. Но любые комментарии по стилю или передовым методам были бы наиболее ценными. )
Я решил это! Просто добавьте следующий код в .emacs, он ведет себя именно так, как я и надеялся. Если вы ничего не процитировали ранее, то это ведет себя как обычно, в противном случае цитирование по умолчанию используется последним.
(defvar reftex-last-citation nil)
(defadvice reftex-citation (after reftex-citation-and-remember-citation activate)
"Save last citation to 'reftex-last-citation after running 'reftex-citation"
(setq reftex-last-citation ad-return-value))
(defadvice reftex-get-bibkey-default (around reftex-just-return-last-citation activate)
"If there is a 'reftex-last-citation then just return that instead of running 'reftex-get-bibkey-default"
(if reftex-last-citation
(setq ad-return-value reftex-last-citation)
ad-do-it))
Спасибо за помощь, Мортимер, без твоей отправной точки я бы никогда не попал сюда!
(Просто интересно, есть ли какая-то причина, по которой ваше решение не использовало defadvice
? Как я уже говорил выше, elisp для меня очень нов, поэтому было бы полезно узнать, как лучше всего это делать. )