如何在崇高文字3中永久从搜索中排除文件夹?


77

有没有一种方法可以始终忽略文件夹...在项目视图中。

我在一个仓库中有多个应用程序,每个应用程序中都有“ node_modules”

mainapp
├── microapp
│   └── node_modules
├── microapp2
│   └── node_modules
├── index
├── config
└── assets

node_modules当我在上述结构中的项目内部搜索时,我想从搜索中排除文件夹。


2
您是否尝试过使用folder_exclude_patterns
戴夫

现在不尝试
nolawi

Answers:


93

转到“设置”菜单,然后在Preferences.sublime-settings用户的文件中,然后将新节点添加到名为的json中folder_exclude_patterns。在其中,添加您不想显示的文件夹(以json数组格式)。

例:

{
    // ... other settings
    "folder_exclude_patterns": ["node_modules", "another_folder"],
}

如果要排除某些目录或文件,而从侧边栏隐藏它,你可以忽略上述溶液中,Add Exclude FilterWhere搜索栏的部分。但是,每次更改搜索目录时,都必须指定它。

注意:您可能需要重新启动Sublime Text才能看到更改,如@Soferio所述


28
这种方法的问题在于,它不仅将这些文件夹从搜索中排除,而且从侧边栏中排除,这并不总是令人满意的。我仍在寻找一种可靠的解决方案,不会削弱侧边栏。
Illya Moskvin

1
@IllyaMoskvin我已经更新了答案,添加了一些所需的解决方案,但它不是永久的。也许可以通过一些第三方插件来实现。
SUB0DH

6
-*/node_modules/*以前没有用,但是今晚神奇地做到了。"folder_exclude_patterns"从边栏隐藏文件夹,但不从搜索中隐藏文件夹:/
jacob

@IllyaMoskvin-请参阅stackoverflow.com/a/55748485/4454732,了解如何在将文件夹保留在边栏中的同时从“查找全部”中取消显示。
David Hempy

2
最终,-*/node_modules/*如@jacob所建议的那样,真正起作用并且排除了大量不良搜索结果的方法是插入。我以前的搜索是大约20.000个文件,但下降到其中的80个。
路易斯·弗弗罗

50

如果转到“首选项”菜单,然后选择“设置”,它将打开所有设置及其默认值的JSON文件。该文件还可以用作有关设置含义的文档。其中两个与此相关。这是JSON文件的代码段;

// folder_exclude_patterns and file_exclude_patterns control which files
// are listed in folders on the side bar. These can also be set on a per-
// project basis.
"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS"],
"file_exclude_patterns": ["*.pyc", "*.pyo", "*.exe", "*.dll", "*.obj","*.o", "*.a", "*.lib", "*.so", "*.dylib", "*.ncb", "*.sdf", "*.suo", "*.pdb", "*.idb", ".DS_Store", "*.class", "*.psd", "*.db", "*.sublime-workspace"],
// 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将其从侧边栏binary_file_patterns隐藏,而将其从搜索中隐藏。因此,如果要同时将其排除在外,则可以打开“用户设置”文件(它将覆盖默认设置)并添加;

{
    "folder_exclude_patterns": ["node_modules"],
    "binary_file_patterns": ["*/node_modules/*"]
}

请注意,两者是不同的,因为前者是文件夹模式,而后者是文件模式。


2
这似乎是正确的答案,但是对我来说,它仍然搜索node_modules /和vendor /,搜索到的文件数量是相同的。有任何想法吗?
trainoasis

这对我有用,但是只有在重启sublime3之后,所以才不要放弃....!
索菲里奥

12

我为中等大小的Ruby on Rails项目添加"node_modules/", "coverage/", "tmp/cache/"binary_file_patterns,以加快痛苦的搜索速度:

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

之前,“查找所有文件”耗时约7秒:

Searching 28526 files for "as records_with_errors"

之后,“查找所有文件”将花费不到1秒的时间:

Searching 1658 files for "as records_with_errors" 

coverage并不是为了提高性能,而是为了防止多余的,无用的搜索结果。


顺便说一句,我发现的大多数解决方案都集中在上folder_exclude_patterns,而忽略了binary_file_patterns可以指定文件夹模式的问题,这可能是由于其名称和Sublime的默认设置所致。

folder_exclude_patterns对于OP来说,使用不是一个干净的解决方案。它从侧边栏隐藏文件夹的事实肯定会让您挑战自己的理智,因为总有一天您会去寻找那些文件,而这些文件根本就不存在。

当然,这种担心也适用于抑制“查找”结果,在阻止太多文件夹之前应仔细权衡一下。仅包括您要积极抑制的文件夹/样式...不要包括您认为根本不会造成问题的简单搜索内容。


1
对我来说,这仍然搜索node_modules。有任何想法吗?
trainoasis

您可以从配置中支付该行吗?
David Hempy

1
当然是“ binary_file_patterns”:[“ .jpg”,“ .jpeg”,“ .png”,“ .gif”,“ .ttf”,“ .tga”,“ .dds”,“ .ico”,“ 。 eot”,“ .pdf”,“ .swf”,“ .jar”,“ .zip”,“ node_modules / ”,“ vendor / *”,“。cache_loader / *”]
trainoasis

嗯...这似乎完全符合我在本地所拥有的。您是否可以确认它抑制了其他排除项的结果,例如“ vendor / *”或“ .pdf”?
David Hempy

1
仅当“在文件中查找”面板中的“位置”字段不包含文件夹时,此方法才有效。如果该字段包含目录(例如,如果您在侧边栏上单击鼠标右键并选择“在文件夹中查找”),binary_file_patterns将无法使用。问题来了:github.com/sublimehq/sublime_text/issues/959
Illya Moskvin

2

这些是正确的解决方案,但是您必须重新启动Sublime3才能使更改的配置生效。不要只是关闭窗口,而是退出整个应用程序。

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.