2014-02-26 36 views
0

的Emacs Lisp函數我有這樣的功能:與可選的參數調用其它功能

(defun swap-region-ring() 
    "replace selected text with the one from kill ring" 
    (interactive) 
    (backward-delete-char (- (point) (mark))) 
    (yank)) 

(global-set-key (kbd "C-c y") 'swap-region-ring) 

我如何重寫函數調用抽出與參數或者也可選參數,因此採取同樣作爲抽出?所以,我可以打電話銅2抄送Ÿ

回答

1

yank恰好接受「原始前綴參數」作爲其參數,所以你可以把它撿起來,並將它轉發:

(defun swap-region-ring (&optional arg) 
    "replace selected text with the one from kill ring" 
    (interactive "*P") 
    (backward-delete-char (- (point) (mark))) 
    (yank arg)) 

類型C-h f interactive瞭解更多信息關於交互規範。

+0

謝謝,我試圖使用只是'「p」'不起作用。 – jcubic