Emacs:打开位置未知的文件的最快方法

时间:2010-09-29 13:54:36

标签: emacs

打开一个txt文件最简单的方法是使用shell find命令找到其路径?

例如,假设我想打开一个我知道(唯一)名为 example.txt 的文件,我知道它是“我可以使用shell find找到它的地方命令“。

我现在所做的是:

我做 C-u (通用参数)然后 M - !(shell命令)

然后我输入 find ,例如:

find . -iname "example.txt"

然后完整路径(我之前不知道)出现在缓冲区中,我剪了它,然后我点击 Cx Cf ,我删除了默认写入的内容然后粘贴我剪切的内容之前。

这看起来有点长,需要点击几下,切断'等等。

是否有最简单的方法(不编写新的自定义Emacs命令)?

9 个答案:

答案 0 :(得分:10)

仅使用内置功能,我会:

  • 转到shell缓冲区: M-x shell
  • 运行我的查找命令。
  • 向上移动光标,使其位于找到的文件路径的顶部。
  • 运行find-file-at-point命令: M-x ffap

我经常使用find-file-at-point我将它绑定到专用键 s - \ (超反斜杠)。

答案 1 :(得分:10)

M-x find-name-dired

输入dir(默认为current)和filename(shell globs也可以),你将得到一个带有结果的虚拟dired缓冲区。转到所需的文件,然后点击“a

答案 2 :(得分:6)

试用ifind.el

M-x ifind /some/starting/point/example.txt

将在example.txt以下的目录中搜索/some/starting/point

答案 3 :(得分:2)

M-x locate是查找和打开文件的最快方法,尤其是。如果您知道确切的文件名,请在emacs中。

答案 4 :(得分:1)

如果你的文件夹构成一个“项目” - 在版本控制下或者有一个根文件夹标记,如project.el,.dir-locals.el等,你可以使用find-file-in-project,我的意见是解决这个问题的绝佳方案。

答案 5 :(得分:1)

另请查看LocateFilesAnywhere

我碰巧使用 M-x anything-locate

答案 6 :(得分:1)

Icicles 中,您不仅可以匹配相对文件名,还可以匹配路径的任何部分来查找文件。您可以使用子字符串,正则表达式和模糊匹配。您可以在一起使用多种搜索模式(渐进式完成)。请参阅多命令icicle-locate-file

http://www.emacswiki.org/emacs/Icicles_-_File-Name_Input

答案 7 :(得分:0)

M-x find-dired RET

然后你有一个直接缓冲区显示你的find返回的文件。您可以使用classic dired命令打开/移动/重命名...文件和目录。

答案 8 :(得分:0)

我很惊讶globalff并未被提及为可行的选择之一。当然它需要定位命令,但当你无法回想起确切的名字时,它非常快速和有用。