3

在 emacs 中,以下将定义一个函数,当以交互方式调用该函数时,将向用户询问文件名:

(defun do-something (filename )
  (interactive "FFilename: ")
  ...
  )

当用户输入文件名时,他们可以使用制表符补全等。有谁知道该文件输入代码中是否有任何钩子?特别是,我想修改我的 find-file 命令,以便 Windows 符号链接(显示为“foo.lnk”)在您点击选项卡时自动跟随其目标。

我目前正在使用w32-symlinks,这意味着至少如果我在链接上按回车键,那么它将在 diredit 中打开目标。但我更希望能够通过它对我正在查看的文件进行制表符完成,而不是打开 diredit 然后执行第二个 find-file 命令。

4

2 回答 2

2

在重新发明轮子之前,也许将 (ido-mode t) 放入您的 .emacs 文件中,看看它是否符合您的要求。

我不使用 windows,但我使用 ido,它比默认的要好得多。

于 2010-01-21T21:56:01.733 回答
1

一般来说,您的问题的答案是completing-read直接在interactive规范中使用——不要使用字符串参数。IOW,组成你自己的完成集。

或者您可以绑定read-file-name-function到您自己的执行文件名完成的函数(例如,合并标准行为)。请参阅标准库minibuffer.el

于 2011-08-21T23:10:17.963 回答