1

我想在 lambda 中使用可选参数调用 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))
4

1 回答 1

2

问题出在您选择的组合键上。我用了另一个,它奏效了。

于 2012-08-15T15:02:32.037 回答