Comment rechercher des documents LaTeX dans Spotlight?


12

J'ai reproduit le problème maintenant aussi dans El Capitan avec de nouveaux composants (carte mère, 3x SSD) dans mon Macbook Air 2013-mid. J'ai eu une installation propre d'OS X (El Capitan, Yosemite) pendant le test. Le dernier OS X sur lequel fonctionne la recherche .tex est 10.8.5 dans Spotlight. Je ne vois aucun document .tex dans ma recherche Spotlight pour le moment. Les tests

  • Aucune réponse actuelle ne résout le problème de façon permanente. À Yosemite, le problème est revenu après un certain temps avec quelques réponses. Il n'existe pas de solution stable et peu de compréhension de la cause du problème.

La sélection des configurations de paramètres n'est pas pertinente dans Spotlight car nous pouvons utiliser directement la commande mdfinddans le terminal, ce qui équivaut à Spotlight. Cependant, nous avons essayé les paramètres par défaut, minimaux et complets dans Spotlight. Pour les tests, nous utilisons les paramètres par défaut dans OS X. Système et applications

  • Systèmes OS X Yosemite, OS X El Capitan
  • TexShop.app est installé. (MacTeX 2015, mactex-20150613.pkg).
  • Application Tex: TextMate2-beta8
  • Spotlight / Finder / toute application de recherche ne fonctionne pas avec les fichiers TeX et MacTeX 2015
  • Spotlight fonctionne comme prévu avec certains paramètres différents et également avec MacTeX 2015.

La commande mdfind(version 10 juin 2004) est équivalente à la recherche Spotlight donc un simple test qui ne renvoie rien sans succès dans mon système

mdfind sulfas | grep tex

Je pense que le problème est que le système ne reconnaît pas le format de fichier .tex`. La première chose est de le faire reconnaître par le système.

Suggestion de tjt263 pour rechercher uniquement .tex dans le Finder / Spotlight

La sortie de Spotlight .texou la commande terminal donne correctement les fichiers tex dans mon système. Cependant, le combiner à d'autres termes comme, par .tex diabetes, ne donne plus de fichiers tex. Importateurs obtenus par mdimport -L:

2015-09-22 15:31:42.352 mdimport[8163:707] Paths: id(502) (
    "/Library/Spotlight/iBooksAuthor.mdimporter",
    "/Library/Spotlight/iWork.mdimporter",
    "/Library/Spotlight/Microsoft Office.mdimporter",
    "/System/Library/Spotlight/Application.mdimporter",
    "/System/Library/Spotlight/Archives.mdimporter",
    "/System/Library/Spotlight/Audio.mdimporter",
    "/System/Library/Spotlight/Automator.mdimporter",
    "/System/Library/Spotlight/Bookmarks.mdimporter",
    "/System/Library/Spotlight/Chat.mdimporter",
    "/System/Library/Spotlight/CoreMedia.mdimporter",
    "/System/Library/Spotlight/Font.mdimporter",
    "/System/Library/Spotlight/iCal.mdimporter",
    "/System/Library/Spotlight/Image.mdimporter",
    "/System/Library/Spotlight/iPhoto.mdimporter",
    "/System/Library/Spotlight/iPhoto8.mdimporter",
    "/System/Library/Spotlight/Mail.mdimporter",
    "/System/Library/Spotlight/MIDI.mdimporter",
    "/System/Library/Spotlight/Notes.mdimporter",
    "/System/Library/Spotlight/PDF.mdimporter",
    "/System/Library/Spotlight/PS.mdimporter",
    "/System/Library/Spotlight/QuartzComposer.mdimporter",
    "/System/Library/Spotlight/RichText.mdimporter",
    "/System/Library/Spotlight/SystemPrefs.mdimporter",
    "/System/Library/Spotlight/vCard.mdimporter",
    "/Applications/Microsoft Office 2011/Microsoft Outlook.app/Contents/Library/Spotlight/Microsoft Outlook.mdimporter",
    "/Applications/Xcode.app/Contents/Library/Spotlight/uuid.mdimporter",
    "/Applications/DjView.app/Contents/Library/Spotlight/DjVu.mdimporter"
)

Les tests de bmikes

Le fichier notes.tex ne peut pas être recherché dans le Finder. Je le change en notes.txt que je peux maintenant rechercher dans le Finder. Cela me propose de ne pas rechercher de problème de programme (Spotlight, md ..., quoi que vous utilisiez, comme je l'ai décrit à plusieurs reprises dans les commentaires). Donc tex -problem dans le système. Sorties du même fichier mais avec deux fins différentes. Sortie du fichier txt:

15:42:23:Desktop:masi$ mdls 8.9.2015.txt 
kMDItemContentCreationDate     = 2015-09-22 13:38:31 +0000
kMDItemContentModificationDate = 2015-09-22 13:38:31 +0000
kMDItemContentType             = "public.plain-text"
kMDItemContentTypeTree         = (
    "public.plain-text",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2015-09-22 13:39:22 +0000
kMDItemDisplayName             = "8.9.2015.txt"
kMDItemFSContentChangeDate     = 2015-09-22 13:38:31 +0000
kMDItemFSCreationDate          = 2015-09-22 13:38:31 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "8.9.2015.txt"
kMDItemFSNodeCount             = 62503
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 502
kMDItemFSSize                  = 62503
kMDItemFSTypeCode              = ""
kMDItemKind                    = "Plain Text Document"
kMDItemLogicalSize             = 62503
kMDItemPhysicalSize            = 65536

Sortie du fichier tex:

15:42:27:Desktop:masi$ mdls 8.9.2015.tex 
kMDItemContentCreationDate     = 2015-09-22 13:38:31 +0000
kMDItemContentModificationDate = 2015-09-22 13:38:31 +0000
kMDItemContentType             = "org.tug.tex"
kMDItemContentTypeTree         = (
    "org.tug.tex",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2015-09-22 13:42:37 +0000
kMDItemDisplayName             = "8.9.2015.tex"
kMDItemFSContentChangeDate     = 2015-09-22 13:38:31 +0000
kMDItemFSCreationDate          = 2015-09-22 13:38:31 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "8.9.2015.tex"
kMDItemFSNodeCount             = 62503
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 502
kMDItemFSSize                  = 62503
kMDItemFSTypeCode              = ""
kMDItemKind                    = "TeX document"
kMDItemLogicalSize             = 62503
kMDItemPhysicalSize            = 65536

Commandes recherchées:

mkdir /Users/masi/Desktop/masi
18:07:56:~:masii$ cp /tmp/8.9.2015.tex /Users/masi/Desktop/masi/
18:08:09:~:masi$ cd /Users/masi/Desktop/masi/
18:08:16:masi:masi$ echo osteoporosis > test_file.txt
18:08:24:masi:masi$ mdfind osteoporosis |grep /Users/masi/Desktop/masi/
/Users/masi/Desktop/masi/test_file.txt
18:08:47:masi:masi$ mdls -name kMDItemContentType test_file.txt 
kdItemContentType = (public.plain-text)
18:09:49:masi:masi$ mv test_file.txt test_file.tex
18:10:14:masi:masi$ mdfind osteoporosis | grep /Users/masi/Desktop/masi/
18:10:20:masi:masi$ mdls -name kMDItemContentType test_file.tex 
kMDItemContentType = "org.tug.tex"

Outils de diagnostic actuels utilisant et discutant dans le chat

Commande bien cachée de Est-il possible d'interroger la base de données des services de lancement pour les applications qui ouvriront un fichier arbitraire ou un type UTI?

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep -n7 org.tug.tex

Nous avons constaté que TeXShop du MacTeX 2015 n'a pas TeX.mdimporter. L'installation de ceci donne sur la dernière ligne de mdimport -L:

"/Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter")

Essai infructueux avec Patrix

mkdir -p ~/Library/Spotlight; ln -s /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter ~/Library/Spotlight/

après quoi rm ~/Library/Spotlight/TeX.mdimporteret nous avons réinitialisé l'index de Spotlight en déplaçant HardDisc vers le panneau Prevent et en le supprimant rapidement, prenant ainsi un certain temps pour indexer le système.

les résultats de la réponse de klanomath qui ont fonctionné un jour jusqu'à revenir au mauvais état

J'obtiens de manière instable des fichiers .tex en mdfind. Après une journée d'utilisation depuis le début de cette proposition, la condition est revenue au mauvais état:

  • la recherche sur l' ostéoporose renvoie les mêmes fichiers qu'il y a un jour, mais j'ai remarqué que ces fichiers, qui n'étaient pas visibles dans les correspondances de recherche récemment et suffisamment longtemps lors de la dernière modification, ne sont pas visibles dans la recherche
  • seuls les fichiers récemment modifiés sont affichés, et parfois même les fichiers de 3,5 mois sont affichés

Courir 18:25:06:~:masi$ /usr/bin/mdimport -d3 /Users/masi/Dropbox/Internal\ Diseases/24.9.2015.texet se mettre

(Debug) Import: file:/Users/masi/Dropbox/Internal Diseases/24.9.2015.tex plugin:file://localhost/Library/Spotlight/TeX.mdimporter/ /Library/Spotlight/TeX.mdimporter
(Info) Import: edu.uo.texshop.tex 
(Debug) Import: Attributes for file /Users/masi/Dropbox/Internal Diseases/24.9.2015.tex: {
    ":MD:kMDExtendedImportDictionary" =     {
    };
    "_kMDItemFinderLabel" = 0;
    "com_apple_metadata_modtime" = 464803819;
    kMDItemContentCreationDate = "2015-09-23 19:57:11 +0000";
    kMDItemContentModificationDate = "2015-09-24 16:10:19 +0000";
    kMDItemContentType = "edu.uo.texshop.tex";
    kMDItemContentTypeTree =     (
        "edu.uo.texshop.tex",
        "public.text",
        "public.data",
        "public.item",
        "public.content",
        "public.plain-text",
        "org.tug.tex"
    );
    kMDItemDateAdded = "2015-09-23 19:57:11 +0000";
    kMDItemDisplayName =     {
        "" = "24.9.2015.tex";
    };
    kMDItemKind =     {
        "" = "TeX File";
        en = "TeX File";
        pt = "Documento TeX";
    };
    kMDItemLogicalSize = 18220;
    kMDItemPhysicalSize = 20480;
    kMDItemTextContent = "\...";
}
2015-09-24 18:25:50.335 mdimport[6875:707] Imported '/Users/masi/Dropbox/Internal Diseases/24.9.2015.tex' of type 'edu.uo.texshop.tex' with plugIn /Library/Spotlight/TeX.mdimporter.
2015-09-24 18:25:50.336 mdimport[6875:707] Attributes: {
    ":MD:kMDExtendedImportDictionary" =     {
    };
    "_kMDItemFinderLabel" = 0;
    "_kMDItemStaticInterestScore" = "0.5";
    "com_apple_metadata_modtime" = 464803819;
    kMDItemContentCreationDate = "2015-09-23 19:57:11 +0000";
    kMDItemContentModificationDate = "2015-09-24 16:10:19 +0000";
    kMDItemContentType = "edu.uo.texshop.tex";
    kMDItemContentTypeTree =     (
        "edu.uo.texshop.tex",
        "public.text",
        "public.data",
        "public.item",
        "public.content",
        "public.plain-text",
        "org.tug.tex"
    );
    kMDItemDateAdded = "2015-09-23 19:57:11 +0000";
    kMDItemDisplayName =     {
        "" = "24.9.2015.tex";
    };
    kMDItemKind =     {
        "" = "TeX File";
        en = "TeX File";
        pt = "Documento TeX";
    };
    kMDItemLogicalSize = 18220;
    kMDItemPhysicalSize = 20480;
    kMDItemTextContent = "\...";
}

Devinez l'origine du problème: /Volumes/Disc/.Spotlight-V100 / ...

J'ai étudié la dynamique de la mémoire à différents moments dans le temps fdupes -rd /Volumes/Disc2/, l'échantillon suivant est lors de l'indexation:

[1] /Users/masi/Dropbox/det2/plan.tex
[2] /Volumes/Disc2/.Spotlight-V100/Store-V2/440B4DE1-129F-46AB-9D58-14F473B0282A/Cache/0000/0000/0003/213630.txt
[3] /Volumes/Disc2/.Spotlight-V100/Store-V2/440B4DE1-129F-46AB-9D58-14F473B0282A/Cache/0000/0000/0003/213631.txt
[4] /Volumes/Disc2/.Spotlight-V100/Store-V2/440B4DE1-129F-46AB-9D58-14F473B0282A/Cache/0000/0000/0003/213633.txt
... [10] sometimes much more
---

où le contenu du fichier est de deux lignes vides. Vous voyez de nombreuses entrées en double créées par Spotlight pour son index. L'index de Spotlight a de nombreux doublons sur de nombreux points de son fonctionnement. J'ai également étudié ce comportement dans différents médias. Il y a beaucoup de fichiers factices / dupliqués créés pendant l'indexation et pendant la période stable lorsque l'indexation est terminée. Je pense qu'Apple a fait du mauvais travail dans la conception de l'index utilisé par Spotlight.


Comment rechercher des documents LaTeX avec mdfind / Spotlight / Finder?


Étant donné que A) c'est une bonne question en ce qu'elle est compliquée par l'intersection des projecteurs, des types de fichiers et de la base de données des services de lancement b) elle nécessite beaucoup de va-et-vient, j'ai créé une salle de discussion pour discuter du problème / répéter le dépannage afin que les messages ne deviennent pas plus salissants que nécessaire. chat.stackexchange.com/rooms/info/29405/…
bmike

1
Veuillez ne pas ajouter de réponses au texte de la question, postez-le plutôt comme réponse ci-dessous.
nohillside

Avoir les mêmes problèmes ici. De plus, les icônes des documents .tex sont vierges (génériques). Peut-être que les deux problèmes sont liés?
user11126

@ user11126 Veuillez voir la réponse acceptée. Apple n'a montré aucune motivation pour résoudre le problème depuis de nombreuses années. Voir la réponse acceptée et sa proposition sans Spotlight. L'approche terminale fonctionne beaucoup mieux. - - À propos de la deuxième chose - vous n'avez peut-être pas installé MacTex ou vous avez un bug dans la configuration.
Léo Léopold Hertz

Réponses:


5

Ceci est probablement le résultat de l'éditeur / logiciel pour TEX que vous utilisez, car vous n'avez besoin d'aucun importateur Spotlight pour traiter les fichiers en texte brut. (Vous pouvez donc simplement supprimer l'importateur personnalisé de votre application ou choisir une mise à jour / importateur différent).

Plutôt que de deviner le cas, voici comment déterminer où se situe le problème. L'éditeur peut changer le ** kMDItemContentType ** en un qui n'est pas indexé ou vous avez une extension de projecteur tiers qui plante. Voici comment je saurais lequel (ou quelque chose de plus inattendu) se produit:

A) Spotlight indexe-t-il un fichier texte arbitraire lorsque vous changez l'extension de .txt en .tex?
B) Comparez les métadonnées des fichiers pour savoir ce qui se passe en utilisantmdls


Pour tester A, ouvrez Text Edit et collez un mot dans le document: ostéoporose

Si nécessaire, convertissez le document en texte brut (c'est probablement du texte enrichi) - Maj + Commande + T (ou utilisez le menu de format - Créer du texte brut) et enregistrez-le sur votre bureau sous le nom file.txt - Si le menu de format indique Rendre riche N'appuyez pas sur les touches et enregistrez simplement le document.

À ce stade, Spotlight devrait voir le fichier immédiatement. Sinon, vous avez un problème de projecteur et pas des problèmes de fichier .tex. Il s'agit d'un problème très basique si votre projecteur est interrompu pour ne pas indexer les fichiers en texte brut. Si cela fonctionne, changez l'extension .txt en .tex et revérifiez Spotlight.


Pour le test B - utilisez la mdlscommande pour examiner les différences de métadonnées entre votre fichier et le fichier TextEdit qui fonctionnent avec Spotlight. Portez une attention particulière aux champs suivants:

kMDItemContentType             = "public.plain-text"
kMDItemContentTypeTree         = (
    "public.plain-text",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemKind                    = "Plain Text Document"

La modification du .txt en .tex entraîne une modification (car je n'ai aucune application qui revendique l'extension de fichier de .tex et la mappe à une classification de services de lancement / spotlight et à kMDItemContentType / kMDItemKind approprié par opposition à un générique et ad / hoc type:

kMDItemContentType             = "dyn.ah62d4rv4ge81k3p2"
kMDItemContentTypeTree         = (
    "dyn.ah62d4rv4ge81k3p2",
    "public.data",
    "public.item"
)
kMDItemKind                    = "Document"

Voici un court test que vous pouvez couper / coller si vos compétences terminales ne sont pas encore développées. Cela supprimerait le contenu de tout nom de fichier test_file sur votre bureau, alors faites une sauvegarde si vous n'êtes pas sûr avant de coller les commandes ci-dessous:

cd ~/Desktop/
echo osteoporosis > test_file.txt
mdfind osteoporosis | grep Desktop
mdls  -name kMDItemContentType test_file.txt 
mv test_file.txt test_file.tex
mdfind osteoporosis | grep Desktop
mdls  -name kMDItemContentType test_file.tex 

Les mdfindcommandes sont équivalentes à l'utilisation de Spotlight, vérifiez donc que la recherche de terminal correspond à la recherche Spotlight à ce moment.

En tant que note de bas de page, ces outils ne sont nécessaires que pour diagnostiquer l'étendue de la rupture et ne remplacent pas la recherche Spotlight à la fin. Juste que vous ne pouvez pas diagnostiquer un problème de projecteur uniquement avec le projecteur. En outre, vous souhaiterez peut-être regarder le journal de la console pendant que vous effectuez les étapes dans le ~/Desktopcas où des rapports d'erreur ou d'autres diagnostics Spotlight se produisent pendant que vous piquez sur le sous-système.

De plus, les choses se gâtent rapidement si vous pouvez rechercher le document en texte brut mais pas le texte. Dans votre mise à jour, vous avez mentionné que les fichiers .tex sont de type "org.tug.tex" - vous pouvez explorer la base de données des services de lancement pour savoir quels importateurs le système est responsable de l'analyse de ce fichier et les supprimer (ou simplement faire un devinez et supprimez temporairement les applications TEX pour voir si cela "corrige" temporairement le projecteur).

lsregister -dump| grep -n7 org.tug.tex

Où se lsregistertrouve un outil bien caché dans / System - consultez ce fil sur SuperUser pour en savoir plus sur les services de lancement: /superuser/323599/ et ce fil ici: entrées en double dans le menu "Ouvrir avec" du Finder même après la reconstruction des services de lancement pour certaines choses bizarres à essayer. Je suis assez confiant que je pourrais discuter de ce qui ne va pas sur votre système dans environ 20 minutes de piquer, mais écrire toutes les possibilités d'une manière accessible à vous et deviner un peu des réponses s'avère plus difficile que prévu.



J'ai contacté le développeur de Textmate et je souhaite confirmer cette affirmation. Le problème est reproduit maintenant également dans El Capitan.
Léo Léopold Hertz

4

J'ai essayé de reproduire vos problèmes Spotlight dans une configuration de machine virtuelle avec Mac OS X 10.8.

Après avoir installé MacTex-20150613 et mis à jour tous les composants (> 300), y compris TexShop et LaTeXiT, je n'ai eu aucun problème à rechercher du contenu dans des fichiers * .tex.

Après être entré:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

J'ai "réussi" à perdre la possibilité de rechercher du contenu dans des fichiers * .tex.

Pour retrouver la capacité de le faire, j'ai fait ce qui suit:

  • Connecté en tant qu'administrateur, j'ai copié le fichier /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter dans / Library / Spotlight / avec

    sudo cp -R /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter  /Library/Spotlight/
    
  • Préparé la réindexation de mon système en allant d'abord dans le dossier /.Spotlight-V100 (dans la barre de menu du Finder -> Aller -> Aller au dossier ... et entrez /.Spotlight-V100) et en déplaçant tous les fichiers et dossiers de ce dossier à la poubelle. Vous devez saisir votre mot de passe administrateur pour ce faire. Si vous ne parvenez pas à entrer le dossier, connectez-vous en tant que root (vous devrez peut-être d'abord activer root en utilisant / System / Library / CoreServices / Directory Utility.app) et supprimez le contenu du dossier en tant que root.
  • Redémarrage du Mac
  • Connecté en tant qu'administrateur et vidé la poubelle. La réindexation démarre automatiquement.

La vérification continue de toutes les informations pertinentes telles que les attributs de fichier ou les services de lancement dans différents états du système (avec plusieurs instantanés de machine virtuelle) à l'aide de mdls , xattr et d'autres outils n'a révélé rien d'intéressant ou de suspect.


J'ai répété toutes les étapes ci-dessus plus en détail dans une nouvelle machine virtuelle et utilisé mdimport -d3pour vérifier le comportement de Spotlight.

Dans un Mac OS X vanilla, un fichier .tex est correctement importé à l'aide d'un importateur dyn.random:

host:~user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample.tex
(Debug) Import: file:/Users/user/Desktop/sample.tex plugin:(null) (null)
2015-09-23 20:20:42.359 mdimport[313:707] Imported '/Users/user/Desktop/sample.tex' of type 'dyn.ah62d4rv4ge81k3p2' with no plugIn. 

Le contenu (mots-clés) a été trouvé.

La même chose s'applique à Mac OS X après avoir installé mais pas démarré l'un des Tex.apps, l'importateur est devenu RichText.mdimporter cependant:

host:~ user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample.tex
(Debug) Import: file:/Users/user/Desktop/sample.tex plugin:file://localhost/System/Library/Spotlight/RichText.mdimporter/ /System/Library/Spotlight/RichText.mdimporter
(Info) Import: public.tex 

Après avoir démarré un Tex.app (dans mon cas TeXShop), l'importateur utilise le TeX.mdimporter par défaut résidant dans la profondeur du bundle TeXShop:

host:~ user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample.tex
(Debug) Import: file:/Users/user/Desktop/sample.tex plugin:file://localhost/Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter/ /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter
(Info) Import: edu.uo.texshop.tex 

Après la mise à jour du MacTex-20150613 avec TexShop et LaTeXiT, l'indexation est complètement interrompue:

host:~ user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample-2.tex
(Debug) Import: file:/Users/user/Desktop/sample-2.tex plugin:(null) (null)
2015-09-23 21:29:49.278 mdimport[5541:707] Imported '/Users/user/Desktop/sample-2.tex' of type 'public.tex' with no plugIn.

Le bon chemin vers le plugin TeX.mdimporter (à l'intérieur de TexShop) a été perdu et donc la possibilité d'indexer un nouveau fichier * .tex a disparu. D'autres plugins comme dyn.random ou RichText.mdimporter n'interviennent probablement pas car ils n'indexent pas les fichiers de type 'public.tex'. La recherche de contenu dans les fichiers (au moins nouveaux) .tex n'est plus possible.

Après avoir copié TeX.mdimporter dans / Library / Spotlight, l'indexation du contenu est restaurée:

host:~ user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample-3.tex
(Debug) Import: file:/Users/user/Desktop/sample-3.tex plugin:file://localhost/Library/Spotlight/TeX.mdimporter/ /Library/Spotlight/TeX.mdimporter
(Info) Import: public.tex 

Pour réindexer tous les fichiers .tex correctement (en particulier ceux où les mots clés de contenu ne sont pas consultables), vous devez reconstruire la base de données Spotlight (consultez la première partie de ma réponse) ou changer les dates de modification de tous les fichiers .tex pour lancer leur réindexation. .


Intéressant. L'importateur doit-il effectuer une recherche en texte intégral? La simple suppression de l'importateur devrait laisser le projecteur en texte brut traiter tous les fichiers, non? (et un énorme +1 néanmoins - excellent travail)
bmike

Je peux rechercher tous mes fichiers sans importateur spécial, mais je ne lance plus 10.8 ... merci @klanomath
bmike

@Masi qu'est-ce qui se passe mdutil -s ~/Dropboxou si vous obtenez une erreur lors de l'exécution du premier sudo mdutil -s ~/Dropboxaffichage de commande ?
klanomath

@Masi Bien que ce soit un message d'erreur, ce n'est pas une erreur "bash" lors de l'exécution de la commande causée par des autorisations manquantes (ce que je voulais dire par erreur). Il s'agit d'un message d'erreur indiquant que mdutilvous ne pouvez pas indexer votre dossier dropbox. Comment échangez-vous (dl / ul) ou où stockez-vous vos fichiers .tex? Dans le dossier Dropbox?
klanomath

@Masi Disc2 est un deuxième volume ou une application / service cloud comme Dropbox?
klanomath

4

Voici comment j'ai résolu ce problème.

Remarque. Cela fonctionne toujours depuis que j'ai publié la solution pour la première fois. A cette époque, j'utilisais Mac OS 10.11.5 et TeXShop 3.62; c'est maintenant Mac OS 10.12.3 et TeXShop 3.77. Pour éditer les fichiers .plist (comme expliqué ci-dessous), j'utilise Xcode.

Tout d'abord, à l'aide de la mdlscommande, j'ai constaté que tous mes fichiers .tex étaient signalés kMDItemContentType = “public.tex”(si votre système signale différemment, vous devrez modifier les instructions suivantes en conséquence.)

J'ai donc ouvert TeXShop> Contenu (en cliquant avec le bouton droit sur TeXShop et en sélectionnant Afficher le contenu du package). J'ai modifié Info.plist en ajoutant public.tex comme UTI de type de contenu de document comme suit (voir la ligne surlignée en bleu):

modification de info.plist

J'ai ensuite modifié le fichier Info.plist dans TeXShop> Contenu> Bibliothèque> Spotlight> TeX.mdimporter> Contenu (exécutez Afficher le contenu du package de TeX.mdimporter). Tout comme ci-dessus, j'ai ajouté public.tex aux endroits appropriés. Voir l'image suivante:

édition Info.plist de TeX.mdimporter

Après cela, Spotlight recherche le contenu des fichiers .tex.


Ce serait formidable d'avoir une ligne pour que cela comprenne mieux. Pas encore de confirmation de son fonctionnement.
Léo Léopold Hertz 준영

J'aimerais que vous nous montriez avec un éditeur de texte brut; la table de Xcode est une sorte de confusion.
Dellu

Retravailler enfin sur Sierra! Quel soulagement!
Florian

2

Cela semble être un problème avec l'importation Spotlight MetaData. Un chemin manquant, corrompu ou cassé vers le "Plugin Spotlight" installé par le package "TexLive".

La sortie de "mdimport -L" sur ma machine comprend la ligne:

"/ Applications / TeX / TeX Live Utility.app/Contents/Library/Spotlight/DVIImporter.mdimporter"

Je ne vois pas de ligne similaire dans votre sortie. Une bonne solution pour vous pourrait être de réinstaller la distribution "TeX Live", à partir de la distribution MacTeX-2015 à: https://www.tug.org/mactex/ cela devrait corriger votre chemin d'accès mdimport cassé.

mactex-20150613.pkg


3
N'utilisez pas de liens raccourcis, ils masquent la destination.
grg

La réindexation n'a pas résolu le problème.
Léo Léopold Hertz

1

Si vous pouvez être sans Spotlight

Si vous souhaitez obtenir une liste de fichiers, puis parcourir chacun d'eux séparément.

Si vous souhaitez obtenir tous les noms de fichiers et correspondances dans la même vue, utilisez pour rechercher tous les fichiers dans le répertoire Time...en parcourant récursivement

  • fichiers / fichiers avec lien symbolique [fd0]

    find -L . -type d -path './Time*' \ 
        -exec grep -d "recurse" series {} + | 
    cut -c -80
    
  • Fichiers .tex sans espaces dans directoryNames ( source )

    find -L $(find . -type l -name 'Math*') -name '*.tex' \
        -exec fgrep word /dev/null {} + |
    cut -c -80
    

Si Spotlight

Le correctif temporaire consiste à utiliser des documents .txt au lieu de documents .tex dans certains dossiers, car il s'agit d'une solution stable

cat *.tex > summary_all.txt

D'autres tentatives

  • J'essaie de trouver une approche terminale pour rechercher des fichiers .tex ici à propos de l' ouverture du chemin résultant de Find Find par Click in Viewer?
  • J'essaie de remplacer mdfind ici sur Comment remplacer mdfind par un autre outil pour .tex?

1
Comment faire une recherche récursive sur un fichier? Si je vous comprends bien, vous pouvez regrouper vos deux instructions find en unefind -L . -type d -path './Time*' -exec grep -d "recurse" series {} +
fd0

0

Si vous ne trouvez pas de solution plus souhaitable, vous pouvez toujours essayer mdfind.
Je comprends qu'il s'agit de l' homologue CLI de Spotlight . Je l'utilise souvent et le trouve très utile.
Pour l'utiliser, ouvrez simplement le Terminal.app natif , puis tapez la commande et l'argument comme ceci:

username@hostname:~$ mdfind osteoporosis.tex

Alternativement, si vous ne connaissez pas le titre; vous pouvez simplement lister tous les fichiers LaTeX avec:

username@hostname:~$ mdfind .tex

Il est possible que ces requêtes correspondent à des chaînes similaires, c'est-à-dire '.text', auquel cas utilisez:

username@hostname:~$ mdfind osteoporosis.tex | grep '\.tex$'

Et / ou plus simplement: (C'est probablement la meilleure option pour votre situation :)

username@hostname:~$ mdfind .tex | grep '\.tex$'

Ajout | grep '\.tex$'à la commande, exécute essentiellement les résultats via un autre filtre, supprimant tous les noms de fichiers qui ne contiennent pas l'extension LaTeX; '.tex', à la fin de leur chaîne.


FYI: Certains types de fichiers ne semblent pas permettre à Spotlight &mdfindde les identifier ou de les localiser par leur contenu . En effet, Spotlight ne peut indexer que les types de fichiers qu'il connaît. Apple fournit certains plugins pour indexer les types de fichiers les plus courants, mais pas tous. Apparemment, il devrait y avoir un importateur LaTeX Spotlight inclus avec votre copie de MacTex mais s'il est cassé, manquant ou inadéquat, vous pouvez en trouver un excellent ici: http://wiesmann.codiferes.net/wordpress/?page_id=262


Également ici de LyX pour Mac OS X:
http://wiki.lyx.org/Mac/Spotlight/
Et fourni avec TeXShop ici:
http://pages.uoregon.edu/koch/texshop/


Voir chat.stackexchange.com/rooms/29405/… pour la discussion et les allers-retours sur cette question.
bmike

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.