在lambda中使用可选的args进行defun?

时间:2012-08-15 14:46:50

标签: emacs lambda

我想在lambda中使用可选的args调用defun:

(global-set-key (kbd "M-S-v") 
                (lambda ()
                  (interactive) (bk-cleans-text nil 2)))

该功能独立运作:

(bk-cleans-text nil 2)

但是当在lambda内部调用时,它会在cond上抱怨:

(defun bk-cleans-text (&optional killIt ParsSepBy)
  (interactive)

      (cond 
       ((= 1 ParsSepBy)
        (setq Find "\n+")
        (setq Replace "\n"))
       ((= 2 ParsSepBy)
        (setq Find "\n\n+")
        (setq Replace "\n\n"))
       (t
        (setq Find "\n+")
        (setq Replace "")))

      (message "F: %s, R: %s" Find Replace))

1 个答案:

答案 0 :(得分:2)

问题在于您选择的组合键。我用了另外一个,它起作用了。