在emacs(交互式)文件输入中完成制表符的钩子?

在emacs(交互式)文件输入中完成制表符的钩子?,emacs,elisp,symlink,Emacs,Elisp,Symlink,在emacs中,以下内容将定义一个函数,当以交互方式调用时,该函数将要求用户输入文件名: (defun do-something (filename ) (interactive "FFilename: ") ... ) 当用户输入文件名时,他们可以使用tab completion等。有人知道该文件输入代码中是否有挂钩吗?特别是,我想修改我的findfile命令,以便在点击tab时,windows符号链接(显示为“foo.lnk”)会自动跟随到它们的目标 我目前正在使用,这意味着,

在emacs中,以下内容将定义一个函数,当以交互方式调用时,该函数将要求用户输入文件名:

(defun do-something (filename )
  (interactive "FFilename: ")
  ...
  )
当用户输入文件名时,他们可以使用tab completion等。有人知道该文件输入代码中是否有挂钩吗?特别是,我想修改我的findfile命令,以便在点击tab时,windows符号链接(显示为“foo.lnk”)会自动跟随到它们的目标


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

在重新设计控制盘之前,也许可以将(ido模式t)放入.emacs文件中,看看它是否符合您的要求


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

一般来说,您的问题的答案是直接在
交互规范中使用
完成读取
——不要使用字符串参数。看,组成你自己的完成集


或者,您可以将
读取文件名功能
绑定到您自己的执行文件名完成的功能(例如,合并标准行为)。参见标准库
minibuffer.el

有趣模式;我得玩它。不幸的是,在玩了一段时间后,我觉得它似乎无法解决问题——也就是说,它不理解windows符号链接。实际上,它可能会使用Ido Make Dir List Hook或Ido-Make-File_List-Hook来做一些事情。如果我有什么进展,我会告诉你的。