2012-10-10 80 views
8

通用參數(C-U)我想用C-ü的功能(例如,正則表達式),其中有C-ù調用它有不同的效果。我如何在Emacs中做到這一點?該文檔不顯示如何使用Emacs Lisp來完成此操作。Emacs的:在一個函數

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

回答

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

希望有所幫助。

+0

非常好。做什麼和有一些解釋。 – PascalVKooten

+2

請注意,模擬'C-u' *所需的參數值取決於原始函數的期望值(即其對'interactive'的參數)而變化*。如果它接受一個「raw」前綴參數,那麼你會想傳遞列表''(4)'而不是數字值'4'。參見'C-h i g''(elisp)前綴命令參數''RET' – phils