告诉Sublime Text忽略.gitignore中的所有内容?

65

Vim有一个非常棒的插件,可以将当前项目的.gitignore转换为Vim可理解的语法,并从中排除所有这些文件以防打开。

使用Sublime Text 3的“转到任何地方”(CMD+P),我会得到许多我不感兴趣的文件,例如.build.meteor下的文件。

ST3有类似的功能吗?


您可以手动将它们添加到您的项目文件中,编写一个插件来为您完成这项工作并不困难,但我不知道是否已经存在这样的插件。 - bheklilr
我现在已经添加了它们。只是因为有太多的项目,所以需要时间。而且.gitignore已经存在于大多数仓库中,几乎包含完全相同的文件列表。 - Jonatan Littke
2
我理解你的沮丧。如果我有时间,我会写一个简单的脚本来完成它,但我认为我将在大约两周后才有机会。你会用Python吗?解析.gitignore应该很容易,然后将其放入项目设置中也不应该太难。有一个名为“file_exclude_patterns”的设置是编辑器范围内的,你可以将常见的排除模式放在那里作为临时解决方案。 - bheklilr
1
甚至更好的方法是使用git ls-files命令输出来填充文件列表。解析.gitignore文件并不像看起来那么简单,因为它有一些特定的格式,你需要手动重新实现(例如以!开头的行是否定模式)。我认为最好让git来做这个工作,因为它知道如何做。 - MetalElf0
4个回答

68

我创建了一个快速而简单的插件,sublime-gitignorer,就是为了解决这个问题。

目前它已经在 Ubuntu 和 Windows 的 Sublime Text 2 和 3 上进行了测试。我认为它也能在任何其他 Linux 发行版或 Mac 上工作。


安装方法如下,假设您已经安装了package control

  • 按下 CTRL+SHIFT+P(Mac上为 CMD+SHIFT+P
  • 选择 "Install Package"
  • 搜索 Gitignored 文件排除器 并按下 Enter

另外,如果您没有 package control,可以将 gitignore_plugin.py 复制到您的 Packages 目录中,您可以通过在 Sublime 中选择Browse Packages... 选项来找到该目录,该选项在“首选项”菜单中。尽管如此,你还是应该安装Package Control - 它非常有用。


我开玩笑说这个插件很脏。它的工作方式是,插件每隔五秒钟:

  • 检查打开文件夹内的 Git 仓库
  • 询问Git各个仓库中已忽略的路径
  • 将这些路径添加到 file_exclude_patternsfolder_exclude_patterns 设置中。

对于大多数用户来说似乎还可以,只要你在 Sublime 中打开的文件夹不要太大。大文件夹的存在(例如一个典型的 node_modules 文件夹)与此插件结合使用可能会使 Sublime 变得非常慢。

任何想要做出贡献或报告错误的人都应查看问题页面


1
警告cygwin用户:我的sublime text崩溃并出现错误,libiconv-2.dll文件丢失。使用sublime-gitignorer需要您配置git以在sublime文本环境(在Windows sublime的情况下为Windows)中工作。 - Blake
1
@Nishant 是的,它可以工作,但在与查找和替换UI交互时会有明显的延迟。我猜测它频繁地读取gitignore文件。 - png
现在它已经成为SublimeText 4的内置功能,由https://stackoverflow.com/users/1489243/jacob-ford在下面提到。 - John Paul Ashenfelter
现在,这已经成为SublimeText 4的内置功能,下面是由https://stackoverflow.com/users/1489243/jacob-ford提到的。 - undefined

8

Sublime Text 4 Build 4142(发布于2022年11月10日)支持一个新的设置:

"goto_anything_exclude_gitignore": true,

将其添加到您的设置文件中,.gitignore 中忽略的文件将在自动完成、模糊搜索等过程中被忽略。


8
您可以通过以下命令获取所有被忽略的文件列表:
``` git ls-files --others -i --exclude-standard ```
然后按照bheklilr的建议,将其添加到Sublime Text的file_exclude_patterns中。

7

我不再使用Sublime Text了,但如果有人尝试并且有效,我会将其标记为正确。 - Jonatan Littke
这个方法在我的OS X 10.13.4上有效,而被接受的答案包则不行。 - Thomas David Baker
在Linux上,Sublime Text 3对我不起作用。 - Michael Herrmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接