ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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


A
AGS

在您的 ~/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"],

binary_file_patterns 从 Goto Anything 中删除文件,而不是从 Find in Files 中删除文件,因为它应该基于评论。还有其他人遇到这种情况吗?知道如何解决吗?我在 Ubuntu 上,构建 2221;我的 Mac 上也发生了同样的事情(不知道内部版本号)。
如果您想忽略某些文件而不是文件夹,还有 "file_exclude_patterns": ["*.log"]
这在 ST3 中有效吗? ST# 中的评论似乎不同,看起来 folder_exclude_patterns 将从侧边栏中排除,但我只希望它从 goto 中排除并在文件中查找
@Michael 在 ST3 中也是如此。其他人:有没有办法排除文件夹而不隐藏它?我经常想查看一些库的来源,但在我的典型搜索结果中没有得到它。
@Parris我有同样的问题。想从侧边栏的搜索 bot nut 中排除。
J
Jay

对于 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 build 3095 开始工作)。但不适用于“binary_file_patterns”。


这正是它应该做的,如果你想以这种方式思考,它的行为就像一个忽略文件。非常感谢!
但是不可能每个项目都改变这个?
注意:也适用于 Sublime 2.0.2。为您的良好描述 +1 并表明 folder/** 也有效。 :)
这似乎对我不起作用。我正在使用 ST3 build 3095。我无法编辑首选项->设置 - 默认,所以我将过滤器添加到 ->设置 - 用户。我尝试添加 "unused/""*/unused/*",但都不适合我。但是,我可以在我的搜索中添加这样的排除过滤器:-*/unused/*,-*/_sgbak/*,这很烦人,因为它不记得了,所以你必须每次都添加它。
@user2602152 我无法让它在每个项目中工作,请参阅我尝试过的更新答案
D
David Pärsson

您可以通过 modifying your project settings 从您的项目中排除某些文件模式和文件夹,如下所示:

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

这在 projects documentation 中进行了描述。


适用于 Sublime Text 3。确实从侧边栏中删除了排除的文件夹,但这对我来说不是问题。
每个项目隐藏搜索而不是侧边栏的最佳方法是什么?
@AdrianoResende 据我所知,没有正确的方法可以在每个项目的基础上做到这一点。仅来自全局设置。
D
Daniel Flippance

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

-*/node_modules/*

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


是的!完美的。我不想完全从项目中排除 node_modules,只是想将其从搜索中过滤掉。摇滚!
我认为这不会出现在 where 字段中。
是的,它确实去那里。
请注意,在 Windows 中,您还必须使用正斜杠 (/) 来排除目录,即使您使用反斜杠作为要搜索的目录。在 Where 字段中的示例:C:\Projects\SearchThis,-*/but/not/this/*
如何排除多个文件夹?
e
eephillip

在崇高文本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 中隐藏文件夹。
是的。带有 folder_exclude_patternsfile_exclude_patterns 的其他建议仅将其从侧边栏中隐藏,而不是从搜索或 GoTo 中隐藏。遗憾的是,我还没有找到任何从搜索和 GoTo 中排除的永久设置。所以这个答案是目前最好的解决方法。
实际上只是验证了它确实将它隐藏在 Goto 中。但它仍然没有将其隐藏在项目范围的搜索中。
我刚刚发现,如果您在全局设置文件(“Sublime Text -> Preferences -> Setting - User”)中包含这些选项,它将排除在文件中的查找之外。它不适用于项目设置文件,因此必须将这些设置应用于每个项目/应用程序。
H
Harsh Vakharia

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

当您选择 Find in Files 时,在 Where 输入中指定排除文件夹;

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

因此,连字符后跟排除模式用于您不想搜索的文件夹。

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

这将限制您的搜索范围。

https://i.stack.imgur.com/bHGJq.png


K
Kevin Leary

我认为其中许多答案跨越了 Sublime Text 的几个不同版本,这是我在 Mac 上使用 Sublime Text 3 执行此操作的方法。

打开 Sublime Text > Preferences > Settings - User 菜单编辑 file_exclude_patterns 和 folder_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"
],

截屏

https://i.stack.imgur.com/mMeUb.png


我正在寻找一个全局解决方案(不是每个项目的解决方案)并试图区分文件和文件夹,我在这里得到了一切! (在 Linux Mint 上使用 ST3)
谢谢你 - 我让它在 Ubuntu 上与 ST2 一起工作。快速差异:我必须将 * 添加到“file_exclude_patterns”;例如,“.txt” -> “*。文本”。我跟着这个:lugolabs.com/articles/…
这有效,但也使您无法在 sublime 中打开文件/文件夹。假设您希望在进行文件夹范围查找时始终排除 node_modules。但是,如果您正在调试某些东西并且依赖项存在问题,那么最好选择在 node_modules 中打开文件
a
afsheenirani

您还可以通过 Where 字段从搜索中排除文件夹:

其中:<open folders>,-*/node_modules/*.*,-*/build/*.*

所以在我上面的例子中:

我正在搜索所有打开的文件夹。我排除了名为“node_modules”的文件夹,它是我项目根目录下的顶级文件夹。我排除了名为“build”的文件夹,它是我项目根目录下的顶级文件夹。

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


C
Community

这个解决方案非常适合我:https://superuser.com/a/601270

Find: "something" Where: "<open folders>" // <open folders>" not include hidden folder in sidebar

A
Alter Lagos

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

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

M
MEngelby777

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

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

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


关键是什么?你把它放在哪里? (崇高的偏好)
@LeonGaban 此提示是交互式面板 Find-in-Files 的“Where”条目。默认键绑定是 CTRL+SHIFT+F。
A
Ahmad Awais

我认为确保在每个项目中排除此类文件和文件夹的最简单方法是在 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