我想定义 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))))
但这感觉像是在作弊(更不用说让我的代码变得脆弱了)。