(警告:这是我曾经写过这是比3个系长第一elisp的代码,它可能是可怕的代码,但它似乎但任何关于款式或最佳实践的评论都将非常感激。)
我已经解决了!只需将以下代码添加到.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对我来说都是非常新鲜的东西,因此了解最佳的做事方式会很有用。)
谢谢,但那并不完全符合我想要的。 (但现在我至少有一个想法如何开始!)我希望它默认,以便默认情况下出现的正则表达式不是我上次输入的正则表达式,而是保证我最后引用的论文来作为默认(/只)选择。因此,如果我将“McDowell”作为正则表达式输入,然后继续向下滚动以从我的参考书目文件中选择一个特定的论文,它将默认为“McDowell”,并将该论文的名称作为正则表达式,所以我不必再次滚动它。 – dbdkmezz 2011-02-16 22:09:15
插入的键会干什么? – Mortimer 2011-02-17 09:17:51
不是真的,因为我最后插入的关键字通常会给我很多条目,我会从中选择一个。我希望我最后选择的那个始终是默认的,所以这样做的一种方式是使我的标题,作者和年份使用默认的默认键。 (对于慢速回复,抱歉,未收到关于您评论的电子邮件通知。) – dbdkmezz 2011-03-04 16:22:48