21

我想C-u在一个函数(例如,正则表达式)中使用它来调用它C-u有不同的效果。我怎样才能在 Emacs 中做到这一点?该文档没有显示如何使用 Emacs Lisp 执行此操作。

(defun test ()
  (interactive)
  (align-regexp)) ; I would like to add the C-u prefix to this.
4

2 回答 2

24
(defun my/test ()
  (interactive)
  (let ((current-prefix-arg 4)) ;; emulate C-u
    (call-interactively 'align-regexp) ;; invoke align-regexp interactively
    )
  )

希望有帮助。

于 2012-10-10T23:14:18.833 回答
12

我来到这里是为了寻找一种方法来检测我的函数是否被 Cu 调用。这就是你的做法:

(defun my-function ()
 (interactive)
  (if (equal current-prefix-arg nil) ; no C-u
   ;; then
    (message "my-function was called normally")
   ;; else
    (message "my-function was called with C-u")))

原发帖人要问的是如何从他/她的 function 内部调用Cu的另一个函数。我将其发布为对上述@codyChan 评论的澄清,希望它可能对其他人有所帮助。

于 2019-07-02T13:01:21.700 回答