在 Sublime Text 中,我经常使用 Cmd+P/Ctrl+P 在文件之间进行搜索和跳转。
通常,它会获取临时或缓存文件,如 .scssc 或 /tmp 文件夹中的内容。
有没有办法可以限制搜索结果中显示的内容?
在您的 ~/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"],
对于 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”。
folder/**
也有效。 :)
"unused/"
和 "*/unused/*"
,但都不适合我。但是,我可以在我的搜索中添加这样的排除过滤器:-*/unused/*,-*/_sgbak/*
,这很烦人,因为它不记得了,所以你必须每次都添加它。
您可以通过 modifying your project settings 从您的项目中排除某些文件模式和文件夹,如下所示:
{
"folders":
[
{
"path": "src",
"folder_exclude_patterns": ["backup"]
},
{
"path": "docs",
"file_exclude_patterns": ["*.css"]
}
]
}
这在 projects documentation 中进行了描述。
您还可以使用 Where
字段中的 -*/foldername/*
语法在“查找全部”窗格中排除文件夹 - 例如:
-*/node_modules/*
http://www.sublimetext.com/forum/viewtopic.php?f=2&t=3847&start=10
where
字段中。
C:\Projects\SearchThis,-*/but/not/this/*
在崇高文本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>
folder_exclude_patterns
和 file_exclude_patterns
的其他建议仅将其从侧边栏中隐藏,而不是从搜索或 GoTo 中隐藏。遗憾的是,我还没有找到任何从搜索和 GoTo 中排除的永久设置。所以这个答案是目前最好的解决方法。
对于 SublimeText 2,这对我来说非常有用。
当您选择 Find in Files 时,在 Where 输入中指定排除文件夹;
-bower_components/**/*, -dist/**/*, -node_modules/**/*, -tmp/**/*
因此,连字符后跟排除模式用于您不想搜索的文件夹。
-folder1/**/*, -folder2/**/*
这将限制您的搜索范围。
https://i.stack.imgur.com/bHGJq.png
我认为其中许多答案跨越了 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
node_modules
。但是,如果您正在调试某些东西并且依赖项存在问题,那么最好选择在 node_modules 中打开文件
您还可以通过 Where 字段从搜索中排除文件夹:
其中:<open folders>,-*/node_modules/*.*,-*/build/*.*
所以在我上面的例子中:
我正在搜索所有打开的文件夹。我排除了名为“node_modules”的文件夹,它是我项目根目录下的顶级文件夹。我排除了名为“build”的文件夹,它是我项目根目录下的顶级文件夹。
这在 Sublime Text 3 中对我有用,并且文件夹继续显示在 SideBar 中。这是通过输入进行的仅搜索排除(不影响任何幕后索引)。
这个解决方案非常适合我:https://superuser.com/a/601270
Find: "something" Where: "<open folders>" // <open folders>" not include hidden folder in sidebar
请注意,如果要添加项目文件夹的子文件夹,则必须使用 \/
加入文件夹。使用@DavidPärsson 的相同示例:
{
"folders":
[
{
"path": "src",
"folder_exclude_patterns": ["backup\/src\/log"]
}
]
}
对于那几次您需要将查找(和替换)限制在当前目录中,请执行以下操作:
c/Path/2/Project,-c/Path/2/Project/*/*
路径排除模式中的重要位是 /*/*
。在 Windows 7 64 位上使用 Sublime Text 3 build 3083。
我认为确保在每个项目中排除此类文件和文件夹的最简单方法是在 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
binary_file_patterns
从 Goto Anything 中删除文件,而不是从 Find in Files 中删除文件,因为它应该基于评论。还有其他人遇到这种情况吗?知道如何解决吗?我在 Ubuntu 上,构建 2221;我的 Mac 上也发生了同样的事情(不知道内部版本号)。"file_exclude_patterns": ["*.log"]
。