我在暂存缓冲区中进行了很多编程,并且经常在某一点评估某个表达式,并希望在其他地方评估相同的表达式(无需为其编写函数)。
一个例子是当我想测试(looking-at "\\<")
时,看看我是否在看一个单词的开头。使用eval-last-sexp
它时会评估之前的东西(point)
。
所以,这意味着我可以测试:
(looking-at "\\<")<(point)>someword
但是我之前无法测试表达式(point)
:
someword<(point)>(looking-at "\\<")
为了测试这一点,我实际上做了类似的事情:
(defun foo ()
(interactive)
(when (looking-at "\\<") (message "t"))
)
然后在其他地方调用它(有时,当我进行大量测试时,我什至会将它绑定到一个键)。
实际上不难想出“行为如何(looking-at)
”的答案,但我感兴趣的问题是是否可以存储在the-last-user-called-sexp
某个地方,以便可以通过使用类似的函数在缓冲区中的其他地方调用它:
(defun invoke-last-sexp (sexp)
(interactive)
(evaluate the last sexp) ; maybe even (call-interactively) is sometimes needed
)