【问题标题】:Emacs: fastest way to open a file whose location is not knownEmacs:打开位置未知的文件的最快方法
【发布时间】:2010-09-29 13:54:35
【问题描述】:

打开必须使用 shell find 命令找到路径的 txt 文件的最简单方法是什么?

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

我现在做的是这样的:

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

然后我输入查找,例如:

find . -iname "example.txt"

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

这似乎有点长,并且需要多次击键、剪切粘贴等。

有没有最简单的方法来做同样的事情(无需编写新的自定义 Emacs 命令)?

【问题讨论】:

    标签: emacs


    【解决方案1】:

    仅使用内置功能,我会:

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

    我经常使用find-file-at-point,以至于我将它绑定到一个专用键 s-\(超级反斜杠)。

    【讨论】:

      【解决方案2】:
      M-x find-name-dired
      

      输入目录(默认为当前)和文件名(shell glob 也可以),您将获得一个带有结果的虚拟目录缓冲区。转到您想要的文件并点击'a'

      【讨论】:

        【解决方案3】:

        试试ifind.el

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            如果您的文件夹构成“项目” - 受版本控制或具有根文件夹标记(如 project.el、.dir-locals.el 等),您可以使用 find-file-in-project,我认为是解决这个问题的绝佳方案。

            【讨论】:

              【解决方案6】:

              也可以看看LocateFilesAnywhere

              我碰巧用了 M-x anything-locate

              【讨论】:

                【解决方案7】:

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

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

                【讨论】:

                  【解决方案8】:

                  M-x find-dired RET

                  那么你有一个显示 find 返回的文件的 dired 缓冲区。您可以使用经典的 dired 命令打开/移动/重命名...文件和目录。

                  【讨论】:

                    【解决方案9】:

                    我很惊讶 globalff 没有被提及为可行的选择之一。当然它需要定位命令,但是当您不记得确切的名称时,它非常快速且有用。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2013-10-17
                      • 2014-01-04
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多