我正在尝试在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?")
Run Code Online (Sandbox Code Playgroud)
如果我获取macroexpand的输出并评估它,我得到了我打算用宏获得的交互式函数,但即使宏运行并且似乎评估,我也无法调用M-x text-ni或text-swallow.