查找带有提示的文件?

时间:2009-09-14 13:28:33

标签: emacs elisp

有没有办法给'find-file'函数一个提示?

我正在处理远程服务器上同一目录中的文件,而我却厌倦了一直输入机器名和目录结构。如果我能编写一个能够显示已经填写的机器名和目录的查找文件提示的函数,那肯定会很棒。

(注意:我使用的是Emacs 23.1)

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

如果从与远程服务器上的文件关联的缓冲区启动'find-file命令,则启动点应该已经包含填写的目录/远程服务器。

皮肤猫的一种方法是做

M-x cd /ssh:user@machine:/starting/path

注意:我使用tramp,这就是find-file的启动方式。我今天之前没有注意到/ssh:,但我不再使用tramp了。

要直接回答您的问题,此命令会使用“提示”调用find-file:

(defun my-remote-find-file ()
  "call 'find-file with a starting directory"
  (interactive)
  (let ((default-directory "/ssh:user@machine:/starting/path/"))
    (call-interactively 'find-file)))

显然可以自定义起点。

我能想到解决这个问题的最后一种方法是在远程服务器上执行M-x dired,然后从那时开始查找文件。

答案 1 :(得分:0)

设置recentf,当您想在服务器上打开文件时,请浏览recentf菜单;如果你想要的确切文件不存在,只需在同一目录中打开其他文件,然后输入C-x C-f,就可以为你填写目录。

答案 2 :(得分:0)

使用书签转到远程目录。然后,如上面的Trey所述,一旦您进入远程文件或目录,default-directory将被设置为您想要的。

您可以为远程文件或目录添加书签。使用Bookmark+,当您为Dired缓冲区添加书签时,您还可以保存其所有文件标记,遗漏等。 - IOW,Dired状态。当您稍后跳转到保存状态恢复的书签时。使用书签来组织代码项目等。