在emacs(交互式)文件输入中挂钩以完成选项卡?

时间:2010-01-21 20:45:08

标签: emacs elisp symlink

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

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

当用户输入文件名时,他们可以使用制表符完成等。是否有人知道该文件入口代码中是否有任何挂钩?特别是,我想修改我的find-file命令,以便当你点击tab时,windows符号链接(显示为“foo.lnk”)会自动跟随到它们的目标。

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

2 个答案:

答案 0 :(得分:2)

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

我不使用Windows,但我使用ido,它比默认更好。

答案 1 :(得分:1)

您的问题的答案一般是直接在completing-read规范中使用interactive使用字符串参数。 IOW,编写自己的完成集。

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