在Sublime Text 2中限制文件搜索范围


238

在Sublime Text中,我经常使用Cmd+ P/ Ctrl+ P在文件之间搜索和跳转。

通常,它会拾取临时文件或缓存的文件,例如.scssc或/ tmp文件夹中的内容。

有没有一种方法可以限制搜索结果中显示的内容?

Answers:


319

~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settings文件中添加和编辑。

// These files will still show up in the side bar, but won't be included in
// Goto Anything or Find in Files
"binary_file_patterns": ["*.jpg", "*.jpeg", "*.png", "*.gif", "*.ttf", "*.tga", "*.dds", "*.ico", "*.eot", "*.pdf", "*.swf", "*.jar", "*.zip"],

"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS"],

12
由于binary_file_patterns应基于注释,该选项从“转到任何内容”中删除文件,但从“在文件中查找”中删除文件。还有其他人遇到吗?知道如何解决?我在Ubuntu 2221上;我的Mac上发生了同样的事情(不知道内部版本号)。
Tyler Collier 2013年

51
还有"file_exclude_patterns": ["*.log"],如果你想忽略某些文件,而不是文件夹。
Matt Zukowski

4
这在ST3中有效吗?ST#中的注释似乎有所不同,它看起来像folder_exclude_patterns将被从边栏中排除,但是我只希望它从goto中排除并在文件中找到
Michael

20
@Michael在ST3中也是一样。其他所有人:有没有办法在不隐藏文件夹的情况下排除该文件夹?我经常想查看某些库的源代码,但不想在典型的搜索结果中找到它。
帕里斯

7
@Parris我有同样的问题。想要从侧边栏的搜索机器人螺母中排除。
spieglio 2014年

148

对于Sublime Text 3:要从搜索结果和GoTo结果中排除而不将其从边栏中删除,请更改"binary_file_patterns"设置。匹配文件和文件夹。

例如,要从GoTo索引中排除“ dist”和“ node_modules”中的文件,请将其添加到“用户设置”文件中:

"binary_file_patterns": ["dist/*", "node_modules/*", "*.jpg", "*.jpeg", "*.png", "*.gif", "*.ttf", "*.tga", "*.dds", "*.ico", "*.eot", "*.pdf", "*.swf", "*.jar", "*.zip"]

我无法弄清楚如何在每个项目的基础上实现这一点:(。大多数设置都可以移到project.sublime-project文件中。“项目>项目另存为”,将其保存为项目的根目录,然后添加"settings": {...}到json中生成的文件(从source,从ST3内部版本3095开始工作),但不适用于“ binary_file_patterns”。


3
这完全符合其应有的功能,如果您要以这种方式思考,它的行为就像忽略文件。非常感谢!
Peter_Fretter 2014年

6
但是,每个项目无法更改吗?
user2602152 2015年

注意:在Sublime 2.0.2中也可以使用。为您的良好描述+1并显示同样folder/**有效。:)
最终

7
这似乎对我不起作用。我正在使用ST3内部版本3095。我无法编辑“首选项”->“设置”-“默认”,因此我将过滤器添加到了“->设置-用户”。我尝试添加"unused/"以及"*/unused/*"对我都无效。但是,我能够向-*/unused/*,-*/_sgbak/*我的搜索添加一个排除过滤器::这很烦人,因为它不记得了,因此您每次都必须添加它。
Redtopia

@ user2602152我无法按项目使用它,请参阅我尝试过的最新答案
Jay

98

您可以通过修改项目设置来从项目中排除某些文件模式和文件夹,如下所示:

{
    "folders":
    [
        {
            "path": "src",
            "folder_exclude_patterns": ["backup"]
        },
        {
            "path": "docs",
            "file_exclude_patterns": ["*.css"]
        }
    ]
}

项目文档中对此进行了描述。


7
适用于Sublime Text3。确实从侧边栏中删除了排除的文件夹,但这对我而言不是问题。
Webdevotion

每个项目对搜索隐藏而不是在边栏隐藏的最佳方法是什么?
阿德里亚诺·雷森德

@AdrianoResende据我所知,没有针对每个项目执行此操作的正确方法。仅从全局设置。
kleinfreund '16

85

您也可以使用字段中的-*/foldername/*语法在“ 查找全部”窗格中排除文件夹Where-例如:

-*/node_modules/*

http://www.sublimetext.com/forum/viewtopic.php?f=2&t=3847&start=10


2
是! 完善。我不想从项目中完全排除node_modules,只想从搜索中过滤掉它。摇滚!
私有者

我认为这并不适用where
挪亚

是的,它确实到了那里。
丹尼尔·弗利彭斯

3
请注意,在Windows中,即使要在目录中使用反斜杠,也必须使用正斜杠(/)C:\Projects\SearchThis,-*/but/not/this/*
排除目录。–

如何排除多个文件夹?
Anon30 '11

21

在Sublime Text 3(BLD 3059 Windows)中,我需要将“查找文件夹”功能限制为某些文件/文件夹,甚至可能是单个文件,

以下对我有用:where的内容:框

/C/path/2/project/folder,*.c,*.h,-*/path/not/to/look/in,/C/path/2/specific/file/file.h

在没有绝对路径的情况下更进一步,您可以将以上内容与以下符号位置结合使用

<open folders>, <open files>, <current file>

<open folders>,*.c,*.h,-*/never_this_in_folder/*,<open files>

这应该是公认的答案,它可以解决问题,并且不会在您要查看的UI中隐藏文件夹。
JohnC

是。其他带有folder_exclude_patterns和的建议file_exclude_patterns仅在侧边栏中隐藏,而不在搜索或GoTo中隐藏。遗憾的是,我没有找到任何永久的设置来排除搜索和GoTo。因此,此答案是目前最好的解决方法。
Magne 2014年

实际上只是验证它确实对Goto隐藏了它。但是它仍然没有将其隐藏在项目范围内的搜索中。
Magne 2014年

2
我刚刚发现,如果您在全局设置文件中包含这些选项(“崇高文本->首选项->设置-用户”),它将排除在文件查找之外。它不适用于项目设置文件,因此必须将这些设置应用于每个项目/应用程序。
Magne 2014年

16

对于SublimeText 2,这对我来说非常有用。

当选择“在文件中查找”时,在“ 何处输入”中指定排除文件夹;

-bower_components/**/*, -dist/**/*, -node_modules/**/*, -tmp/**/*

因此,对于不想在其中搜索的文件夹,请在连字符后加上排除模式。

-folder1/**/*, -folder2/**/*

这将限制您的搜索范围。

看到这个


12

我认为其中许多答案涵盖了Sublime Text的几个不同版本,这就是我在Mac上使用Sublime Text 3的方法。

  1. 打开Sublime Text>首选项>设置-用户菜单
  2. 编辑file_exclude_patternsfolder_exclude_patterns值,以通过“ 查找”工具忽略文件和/或文件夹

"file_exclude_patterns":
[
    ".svn",
    ".git",
    ".hg",
    ".md",
    ".txt",
    ".DS_Store"
],
"folder_exclude_patterns":
[
    "node_modules",
    "bower_components",
    ".svn",
    ".git",
    ".hg",
    "CVS",
    "deprecated",
    "cache"
],

屏幕截图

在此处输入图片说明


我一直在寻找一种全局解决方案(而不是针对每个项目的解决方案),并试图将文件与文件夹区分开来,我在这里得到了一切!(在Linux Mint上使用ST3)
gfd 2016年

谢谢-我在Ubuntu上与ST2一起使用。快速差异:我必须在“ file_exclude_patterns”中添加*;例如,“。txt”->“ * .txt”。我遵循了这个规则:lugolabs.com/articles/…–
ximiki

这行得通,但也使您无法以崇高的态度打开文件/文件夹。假设您要node_modules在进行文件夹范围的查找时始终排除在外。但是,如果您正在调试某些东西,并且存在依赖项问题,那么可以选择在node_modules中打开文件会很好
Jeremy

4

您还可以通过“位置”字段从搜索中排除文件夹:

哪里: <open folders>,-*/node_modules/*.*,-*/build/*.*

因此,在上面的示例中:

  1. 我正在搜索所有打开的文件夹。
  2. 我不包括名为“ node_modules”的文件夹,该文件夹是我项目的根目录下的顶级文件夹。
  3. 我不包括名为“ build”的文件夹,该文件夹是我的项目的根目录下的顶级文件夹。

这在Sublime Text 3中对我有用,并且文件夹继续显示在补充工具栏中。这是通过输入进行的仅搜索排除(不影响任何幕后索引)。



2

对于这几次,您仅需要将查找(和替换)限制为当前目录,请执行以下操作:

c/Path/2/Project,-c/Path/2/Project/*/*

重要的位/*/*在路径排除模式中。在Windows 7 64位上使用Sublime Text 3 build 3083。


关键是什么?你放在哪里?(崇高的偏好)
Leon Gaban

@LeonGaban此技巧是交互式面板“在文件中查找”的“位置”条目。默认的键盘绑定是CTRL + SHIFT + F。
MEngelby777

2

只是请注意,如果要添加项目文件夹的子文件夹,则必须使用将文件夹合并\/。使用@DavidPärsson的相同示例:

    {
        "folders":
        [
            {
                "path": "src",
                "folder_exclude_patterns": ["backup\/src\/log"]
            }
        ]
    }

0

我认为确保在每个项目中排除此类文件和文件夹的最简单方法是在Sublime用户设置中添加以下代码(在~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settings文件中添加和编辑)。

{
    // Remove certain files permanently from Sublime via Preferences.sublime-settings.
    "folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules"]   
}

要点:https : //gist.github.com/ahmadawais/690a816ca158067708ad4dbe17822841

或者您可以在这里查看我的首选项文件 https://github.com/ahmadawais/dotFiles/blob/master/SublimeText/User/Preferences.sublime-settings#L80-L81

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.