gpt4 book ai didi

macros - 您可以在 Emacs Lisp 宏中创建交互式函数吗?

转载 作者:行者123 更新时间:2023-12-03 04:22:43 25 4
gpt4 key购买 nike

我正在尝试在 emacs lisp 中编写一个宏来创建一些“辅助函数”。

最终,我的辅助函数将比我这里的更有用。我意识到可能有更好/更直观的方法来完成同样的事情(请发布),但我的基本问题是为什么这不起作用/我做错了什么:

(defmacro deftext (functionname texttoinsert)
`(defun ,(make-symbol (concatenate 'string "text-" functionname)) ()
(interactive)
(insert-string ,texttoinsert)))

(deftext "swallow" "What is the flight speed velocity of a laden swallow?")
(deftext "ni" "What is the flight speed velocity of a laden swallow?")

如果我获取宏expand的输出并对其进行评估,我会得到我想要通过宏获得的交互函数,但即使宏运行并且似乎在评估,我也无法调用M-x text -nitext-swallow

最佳答案

这就是你想要的:

(defmacro deftext (functionname texttoinsert)
(let ((funsymbol (intern (concat "text-" functionname))))
`(defun ,funsymbol () (interactive) (insert-string ,texttoinsert))))

关于macros - 您可以在 Emacs Lisp 宏中创建交互式函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/660555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com