2015-09-15 53 views
1

我在.emacs文件這一功能,我認爲用正常工作,但現在沒有:當我發出M-x insert-dateEmacs的交互式命令收到「錯誤的參數數目」

(defun insert-date() 
    (interactive "i") 
    (insert (format-time-string "%Y-%m-%d"))) 

Emacs中給出了錯誤:

call-interactively: Wrong number of arguments: (lambda nil (interactive "i") (insert (format-time-string "%Y-%m-%d"))), 1 

我以爲i參數interactive告訴Emacs的忽略任何參數,因爲沒有預期。命令有什麼問題阻止我像使用它那樣使用它?

回答

3

的texinfo文件說:

只是`(互動)」的意思交互調用時通過無參數。

你可能會混淆一個始終爲零而根本沒有參數的論點。參數i在您希望以交互方式忽略特定參數,並在此情況下傳遞nil的情況下很有用。

還有在emacs的手冊的詳細信息:20.2.1 Using interactive

+1

IOW,'「I」'期望的參數,並且該函數不期望/提供一個。 – Drew

+1

如果你有一個函數需要三個參數,但你只想交互地提示兩個參數,那麼這將是忽略參數列表中任何地方的第三個參數的一種方法。 – andygavin