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))))

しかし、これは不正行為のように感じます (コードを脆弱にすることは言うまでもありません)。

4

1 に答える 1

4

call-interactively請求書を支払うようです:

(defun browse-url-incognito ()
  "Call `browse-url' displaying in a chrome incognito window."
  (interactive)
  (let ((browse-url-browser-function 'browse-url-generic)
        (browse-url-generic-program "google-chrome")
        (browse-url-generic-args '("--incognito")))
    (call-interactively 'browse-url)))
于 2013-06-03T04:56:13.793 に答える