在emacs中,以下将定义一个函数,当以交互方式调用时,它将询问用户文件名:
(defun do-something (filename )
(interactive "FFilename: ")
...
)
当用户输入文件名时,他们可以使用制表符完成等。是否有人知道该文件入口代码中是否有任何挂钩?特别是,我想修改我的find-file命令,以便当你点击tab时,windows符号链接(显示为“foo.lnk”)会自动跟随到它们的目标。
我目前正在使用w32-symlinks,这意味着至少如果我在链接上按Enter键,那么它将在diredit中打开目标。但是我希望能够通过它将tab-complete完成到我正在查看的文件,而不是打开diredit,然后执行第二个find-file命令。
答案 0 :(得分:2)
在重新发明轮子之前,可能会将(ido-mode t)放在.emacs文件中,看看它是否符合您的要求。
我不使用Windows,但我使用ido,它比默认更好。
答案 1 :(得分:1)
您的问题的答案一般是直接在completing-read
规范中使用interactive
使用字符串参数。 IOW,编写自己的完成集。
或者您可以将read-file-name-function
绑定到您自己的执行文件名完成的功能(例如,包含标准行为)。请参阅标准库minibuffer.el
。