【问题标题】:Limit File Search Scope in Sublime Text 2限制 Sublime Text 2 中的文件搜索范围
【发布时间】:2012-11-22 07:38:49
【问题描述】:

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

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

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

【问题讨论】:

    标签: sublimetext2 sublimetext


    【解决方案1】:

    在您的 ~/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 中有效吗? cmets 在 ST# 中似乎有所不同,看起来 folder_exclude_patterns 将从侧边栏中排除,但我只希望它从 goto 中排除并在文件中查找
    • @Michael 在 ST3 中是一样的。其他人:有没有办法排除文件夹而不隐藏它?我经常想查看某些库的来源,但在我的典型搜索结果中没有找到它。
    • @Parris 我也有同样的问题。想从侧边栏的搜索 bot nut 中排除。
    【解决方案2】:

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

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

    这在projects documentation 中有描述。

    【讨论】:

    • 适用于 Sublime Text 3。确实从侧边栏中删除了排除的文件夹,但这对我来说不是问题。
    • 每个项目隐藏搜索而不是侧边栏的最佳方法是什么?
    • @AdrianoResende 据我所知,没有正确方法可以针对每个项目执行此操作。仅来自全局设置。
    【解决方案3】:

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

    您还可以使用 -*/foldername/* 字段中的 -*/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/*
    • 如何排除多个文件夹?
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

      对于 Sublime Text 3:要从搜索和转到结果中排除,而不从侧边栏中删除,请更改 "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 我无法让它在每个项目中工作,请查看我尝试过的更新答案
      【解决方案7】:

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

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

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

      【讨论】:

      • 关键是什么?你把它放在哪里? (崇高的偏好)
      • @LeonGaban 这个提示是交互式面板 Find-in-Files 的“Where”条目。默认键绑定是 CTRL+SHIFT+F。
      【解决方案8】:

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

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

      【讨论】:

        【解决方案9】:

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

        当您选择在文件中查找时,在Where输入中指定排除文件夹;

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

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

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

        这将限制您的搜索范围。

        【讨论】:

          【解决方案10】:

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

          地址:&lt;open folders&gt;,-*/node_modules/*.*,-*/build/*.*

          所以在我上面的例子中:

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

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

          【讨论】:

            【解决方案11】:

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

            1. 打开Sublime Text > Preferences > Settings - User 菜单
            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)
            • 谢谢你 - 我让它在 Ubuntu 上与 ST2 一起工作。快速差异:我必须将 * 添加到“file_exclude_patterns”;例如,“.txt”->“*.txt”。我跟着这个:lugolabs.com/articles/…
            • 这可行,但也使您无法在 sublime 中打开文件/文件夹。假设您希望在进行文件夹范围查找时始终排除 node_modules。但是,如果您正在调试某些东西并且依赖项存在问题,那么可以选择在 node_modules 中打开文件
            【解决方案12】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-02-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多