6

我有一堆由代码和 LaTeX 文档生成的辅助文件,我非常希望SpotLight不会将它们建议为潜在的搜索候选者。我不是在找example.log,我在找example.tex

那么可以将 Spotlight 配置为忽略所有.log文件吗?

(我知道,我知道;我应该改用 QuickSilver……)


@diciu是一个有趣的答案。我的问题是这样的:

找出哪个进口商处理您的文件类型

我不确定我的文件类型是否由任何单一进口商处理?由于它们都有奇怪的扩展名(.aux、.glo、.out 等等),我认为不可能有进口商试图为它们编制索引。但是因为它们是纯文本,所以它们被作为通用文件拾取。(诚​​然,我对 Spotlight 的索引了解不多,所以我可能完全错了。)


@diciu再次:听起来很有希望TextImporterDontImportList我去看看有没有什么结果。

就像你说的那样,整个 UTI 系统似乎确实不允许搜索某些东西。


@Raynet使文件不可见实际上是一个好主意,尽管在一般意义上对我来说设置起来相对乏味如果最坏的情况变得最糟,我可能会试一试(但可能是在用尽其他选项,如 QuickSilver 之后)。(哦,SetFile 需要开发人员工具,但我猜这里的每个人都安装了它们:)

4

4 回答 4

3

@Will - 这些定义类型的东西称为统一类型标识符

问题是它们是扩展名(如 .txt)和通用类型(即 public.plain-text 仅根据内容匹配没有 txt 扩展名的 txt 文件)的组合,因此它不像寻找扩展名那么简单。

RichText.mdimporter可能是导入文本文件的导入器。这应该可以通过在调试模式下对您不希望索引的文件之一运行 mdimport 轻松验证:

cristi:~ diciu$ echo "只工作不玩耍让 Jack 成为一个迟钝的男孩" > ~/input.txt
cristi:~ diciu$ mdimport -d 4 -n ~/input.txt 2>&1 | grep 已导入
    kMD2008-09-03 12:05:06.342 mdimport[1230:10b] 使用插件 /System/Library/Spotlight/RichText.mdimporter 导入类型为“public.plain-text”的“/Users/diciu/input.txt”。

在我的示例中匹配的类型是 public.plain-text。

我不知道您实际上是如何为 UTI 编写基于扩展的异常(例如 public.plain-text,除了以 .log 结尾的任何内容)。

稍后编辑:我还查看了 RichText mdimporter 二进制文件并找到了一个有希望的字符串,但我无法确定它是否实际被使用(作为首选项名称或其他):

cristi:FoodBrowser diciu$ 字符串 /System/Library/Spotlight/RichText.mdimporter/Contents/MacOS/RichText |grep Text

TextImporterDontImportList

于 2008-09-03T09:06:45.310 回答
2

不确定如何在文件类型级别执行此操作,但您可以在文件夹级别执行此操作:

资料来源: http: //lists.apple.com/archives/spotlight-dev/2008/Jul/msg00007.html

使聚光灯忽略文件夹

如果您绝对不能重命名文件夹,因为其他软件依赖于它,另一种技术是继续重命名目录以“.noindex”结尾,然后在同一位置创建一个符号链接,指向使用原始位置的真实位置姓名。

大多数软件都乐于使用带有原始名称的符号链接,但 Spotlight 会忽略符号链接,并会注意到“真实”名称以 *.noindex 结尾并忽略该位置。

也许是这样的:

mv OriginalName OriginalName.noindex ln -s OriginalName.noindex
OriginalName

ls -l

lrwxr-xr-x 1 andy admin 24 Jan 9 2008 OriginalName -> OriginalName.noindex drwxr-xr-x 11 andy admin 374 Jul 11​​ 07:03 Original.noindex

于 2008-09-03T07:31:04.043 回答
2

这是它的工作方式

注意:这不是一个很好的解决方案,因为系统更新覆盖您将执行的更改。

获取所有进口商的列表

克里斯蒂:~ diciu$ mdimport -L
2008-09-03 10:42:27.144 mdimport[727:10b] 路径:id(501) (
    "/System/Library/Spotlight/Audio.mdimporter",
    "/System/Library/Spotlight/Chat.mdimporter",
    "/Developer/Applications/Xcode.app/Contents/Library/Spotlight/SourceCode.mdimporter",

找出哪个导入器处理您的文件类型(音频导入器的示例):

cristi:~ diciu$ cat /System/Library/Spotlight/Audio.mdimporter/Contents/Info.plist




[..]
            CFBundleTypeRole
            MDI导入器
            LSItemContentTypes
            
                公共.mp3
                public.aifc-音频
                public.aiff-音频

更改导入器的 plist 以删除您要忽略的类型。

重新导入导入器的类型,以便系统接收更改:

mdimport -r /System/Library/Spotlight/Chat.mdimporter
于 2008-09-03T07:48:43.517 回答
1

The only option probably is to have them not indexed by spotlight as from some reason you cannot do negative searches. You can search for files with specifix file extension, but you cannot not search for ones that don't match.

You could try making those files invisible for Finder, Spotlight won't index invisible files. Command for setting the kIsInvisible flag on files is:

SetFile -a v [filename(s)]

于 2008-09-03T09:45:21.207 回答