【问题标题】:Emacs function automaticly accepting promptEmacs 功能自动接受提示
【发布时间】:2012-10-20 10:25:15
【问题描述】:

我正在尝试找到一种方法来自动接受来自 minibuffer 的第一个提议。

(defun find-file-at-point-without-prompt ()
(interactive )
(find-file-at-point)
)

调用结果提示:“Find file or URL: ......”。我只想要一个自动的“是”。

传递参数不起作用。对于其他情况也可能很有趣。在此之前我使用了一个宏,它只会调用 find-file-at-point 后跟一个 RET。

【问题讨论】:

    标签: function emacs prompt


    【解决方案1】:

    似乎没有自动接受提示的变量。

    您可以通过删除正在执行提示的部分来重新定义函数ffap-read-file-or-url。它仍然是这样的

    (defun ffap-read-file-or-url (prompt guess)
      "Read file or URL from minibuffer, with PROMPT and initial GUESS."
      (or guess (setq guess default-directory))
      (let (dir)
        ;; Tricky: guess may have or be a local directory, like "w3/w3.elc"
        ;; or "w3/" or "../el/ffap.el" or "../../../"
        (or (ffap-url-p guess)
        (progn
          (or (ffap-file-remote-p guess)
              (setq guess
                (abbreviate-file-name (expand-file-name guess))
                ))
          (setq dir (file-name-directory guess))))
        ;; Do file substitution like (interactive "F"), suggested by MCOOK.
        (or (ffap-url-p guess) (setq guess (substitute-in-file-name guess)))
        ;; Should not do it on url's, where $ is a common (VMS?) character.
        ;; Note: upcoming url.el package ought to handle this automatically.
        guess))
    

    【讨论】:

    • 它是成功的,尽管问题是在 emacs 的文件之一中定义了一些东西。一旦安装了新版本,就必须再次更换?
    • 好吧,你在你的 .emacs 文件中重新定义了这个函数,在你升级 emacs 之后它就会出现。当然,在新版本的 emacs 中,这个函数可能不兼容(甚至不存在)。但对于像 ffap 这样的旧东西来说,这是一种罕见的情况
    • @wvxvw 是的,我可以使用建议,但我想从 ffap-read-file-or-url 中删除代码而不是添加一些代码。在这种情况下,重新定义函数更容易 IMO
    • 所以在别处重新定义这个不太可能造成麻烦。我在想它可能有变量或其他问题,不在所述文件中。但它有效,接受的答案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2016-04-14
    • 2013-11-01
    • 1970-01-01
    • 2018-08-20
    相关资源
    最近更新 更多