Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 在Windows 7下的Emacs中使用冰柱查找文件_Search_Emacs_Bookmarks_Locate_Icicles - Fatal编程技术网

Search 在Windows 7下的Emacs中使用冰柱查找文件

Search 在Windows 7下的Emacs中使用冰柱查找文件,search,emacs,bookmarks,locate,icicles,Search,Emacs,Bookmarks,Locate,Icicles,这个问题的简短版本是:我如何才能有效地搜索目录和子目录中的文件,即使只提供部分匹配的文件名 编辑:简短的回答是使用冰柱在目录的顶层定位文件,并使用S-Tab(shift-Tab)开始完成,而不是普通的Tab。更多详情请参阅 作为一个补充,在此之后我放弃了冰柱,因为每次我使用冰柱定位文件时,在(大型)目录树中查找相关文件大约需要10秒钟。也许可以通过创建和收集icicles“收集”的文件集来解决这一延迟,但我开始感到,解决这一问题的前期成本和保持文件集更新的成本正在侵蚀潜在的好处。正如冰柱的作者在

这个问题的简短版本是:我如何才能有效地搜索目录和子目录中的文件,即使只提供部分匹配的文件名

编辑:简短的回答是使用
冰柱在目录的顶层定位文件
,并使用S-Tab(shift-Tab)开始完成,而不是普通的Tab。更多详情请参阅

作为一个补充,在此之后我放弃了
冰柱
,因为每次我使用
冰柱定位文件
时,在(大型)目录树中查找相关文件大约需要10秒钟。也许可以通过创建和收集icicles“收集”的文件集来解决这一延迟,但我开始感到,解决这一问题的前期成本和保持文件集更新的成本正在侵蚀潜在的好处。正如
冰柱
的作者在下面指出的,访问*nix的
定位
命令将允许我使用
冰柱定位
,这比
冰柱定位文件
更快。但是,我在Windows和Everything实用程序上运行。因此,回到IDO和书签的大量使用,它们扩展到
dired
缓冲区

==========

较长的版本。。。由于Emacs(24.3.1)现在是我的主要开发环境,我一直在探索提高效率的方法,特别是在文件名完成方面。有几个很好的答案指向和,我现在正在使用这两个

另一个伟大的建议是Emacs。特别是,将
dired
缓冲区定义为书签,并使用
C-x r b mybook1
跳转到它们,甚至从
C-x C-f
minibuffer()调用
C-x r b
都是非常有用的策略

有几个人提到了它的继承人。我无法在Windows 7上获取两个软件包的文件位置部分。显然,它们依赖于的命令行版本,但这对我来说失败了,如中所述,对此有一些有用的回答,但没有明确的答案。似乎它在*nix上运行得很顺利,但在Windows上对
helm-locate
等的讨论并不多。因此,对于文件名的完成,计算出
helm
anything

这让我想到了冰柱。在一个关于提问者的问题中,提问者评论说,他们已经看过“ido和冰柱,但它们似乎只在当前目录中起到了肤浅的作用”

对此,冰柱上发表了一条评论:“如果你愿意,你可以在你的系统中搜索任何文件,匹配文件名和路径的任何部分”,并将指针指向上面的页面。虽然我很欣赏为冰柱的帮助页面所做的大量工作,但我觉得这一页不是很有用,因为它主要由冰柱功能的描述列表组成。对我有用的是一个指导你如何查找文件的教程

让我们假设以下情况

  • 我正在运行Windows 7安装的Emacs 24.3.1
  • 我有一个顶级目录,其中包含一些文件和文件夹。在这种情况下,它是
    c:/iciclestest/
  • 我知道在树的这一部分的某个地方有一个文件,文件名中有“grob”
  • 我想用冰柱找到这个文件。我已将
    (需要“冰柱)
    (结冰模式1)
    放在我的init文件中
所以,我们走吧。在暂存缓冲区中启动Emacs。击中C-x C-f。我得到一个
文件或目录
提示,左边有一个紫色加号,我认为这表明这是一个冰柱。

点击tab可获得此小框架,显示当前目录的内容。

我点击
folder1
子目录上的标签,冰柱显示了它的内容,正如人们所期望的那样。

您可以看到几个名称中带有“grob”的文件。
好的,C-g清除所有东西,然后C-x C-f再次清除。输入“grob”。我收到一条“无前缀完成”消息。这让我有点吃惊,因为我希望冰柱会有像ido模式一样的模糊匹配。

好吧,也许我需要一个不同的命令。让我们试试
M-x冰柱定位文件
,它会给我以下提示:

如果我输入'grob'并点击确认,我只会得到一个新文件,如下所示。

总而言之:我希望能做的是输入一个字符串,让冰柱去寻找包含该字符串的文件或文件夹。我的主dev文件夹有几十个目录和数千个文件,因此在Emacs中快速查找将是天赐良机

我意识到Windows上不存在
locate
命令,因此功能在某些方面会受到限制,但我认为根据用户输入的字符串从当前目录递归搜索文件和子目录会很简单。我错过了什么?我这样做对吗?这可以在冰柱里完成吗

  • 您需要进一步阅读Icicles文档:使用
    S-TAB
    而不是
    TAB
    完成(regexp或substring)。这显然就是您在这里想要的:将
    grob
    作为子字符串进行匹配。(不需要任何模糊匹配。)

  • 由于您希望文件与该目录下的任何位置相匹配,请使用icicle locate file。将该目录作为起点。(由于要匹配文件名中的任何位置,请使用
    S-TAB
    完成。)

  • 冰柱确实提供了“像ido模式一样的模糊匹配”(事实上很多)。Ido的“弹性”匹配与冰柱的“分散”匹配相同

  • 您可以设置希望成为模糊匹配类型之一的完成类型。在微型缓冲区中,
    C-(
    循环前缀完成方法。
    M-(
    循环前缀完成方法。Tr