elisp - 如何使用可选参数创建交互式 elisp 函数

标签 elisp

您如何编写一个应该绑定(bind)到按键的 elisp 函数,该函数默认情况下不提示,但在 Ctrl-u 之前会提示用户输入参数。类似的东西(这是错误的语法,但我希望你明白)?

 (defun my-message (&optional (print-message "foo"))
   (interactive "P")
   (message print-message))
 (global-set-key "\C-c\C-m" 'my-message)

最佳答案

按照与您的示例相同的实现方式,您可以执行以下操作:

(defun my-message (&optional arg)
  (interactive "P")
  (let ((msg "foo"))
    (when arg
      (setq msg (read-from-minibuffer "Message: ")))
    (message msg)))

关于elisp - 如何使用可选参数创建交互式 elisp 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854595/

相关文章:

sqlite - 如何使用elisp创建一个sqlite特定的shell?

emacs - 在 emacs 中,如何仅突出显示当前帧中的当前行?

emacs - 如果名为 "xyz"的帧存在,则切换到该帧

elisp - 使用 mapconcat 连接包含变量的列表

emacs - 有没有办法从elisp回到键盘宏?

emacs - 如何获取 emacs 中最后关闭的文件列表?

Emacs C-l 命令仅使屏幕居中,不会循环顶部和底部重新定位

emacs - 查找 Emacs site-lisp 目录

emacs:如何在不切换窗口和不升高帧的情况下显示缓冲区?

c# - Emacs 'csharp-mode' 字节编译错误