2
我想定義Emacs命令的修改版本,例如browse-url
。如何定義包裝器命令?
修改後的版本應綁定一些變量,然後推遲到系統命令,例如,
(defun browse-url-incognito (url &rest args)
???
(let ((browse-url-browser-function 'browse-url-generic)
(browse-url-generic-program "google-chrome")
(browse-url-generic-args '("--incognito")))
(apply 'browse-url url args)))
問題是與應該將功能到交互式命令的???
一部分。
我可以,當然,從browse-url.el
拷貝過來的代碼:
(interactive (browse-url-interactive-arg "URL: "))
(unless (called-interactively-p 'interactive)
(setq args (or args (list browse-url-new-window-flag))))
但這種感覺就像作弊(更不用提讓我的代碼脆弱)。