27 votes

Recherche rapide de fichiers sans extension ou avec une extension inconnue

Je suis programmeur, et je trouve que la fonction QuickLook de Mac est vraiment très utile pour se familiariser rapidement avec une base de code particulière. En gros, j'ouvre une fenêtre du Finder dans le répertoire où se trouvent mes fichiers de code, j'appuie sur la barre d'espacement (pour évoquer QuickLook), puis je fais défiler tous les fichiers à l'aide des flèches haut/bas/gauche/droite et je fais défiler QuickLook si nécessaire.

Le problème que je rencontre est celui des fichiers sans extension et des fichiers avec une extension inconnue. Comment puis-je convaincre le Mac d'essayer de QuickLook pour ces fichiers comme des fichiers texte (ce qu'ils sont généralement). De plus, c'est vraiment bien que QuickLook colore automatiquement le code en fonction du type de code qu'il pense être le sien. Comment puis-je étendre les types de fichiers de code que le Mac reconnaît ? Par exemple, je veux être capable de regarder rapidement le code dans un fichier *.html.erb ou un fichier *.js.erb.

21voto

Stefano Points 211

Mise à jour 2021 Jan

Si vous utilisez MacOS Big Sur (11.1) et que vous n'arrivez pas à obtenir des aperçus QuickLook de certains fichiers même si vous avez installé QLStephen et d'autres plugins, voici ce qui a fonctionné pour moi.

Contexte

Sous MacOS, chaque fichier se voit attribuer un UTI . Les UTIs sont utilisées pour identifier les types de fichiers (ce sont les types que vous voyez dans l'application Kind dans le Finder ou dans la colonne Kind l'entrée dans la General de la section Get Info fenêtre). Par exemple, une .txt (un fichier "texte brut") a l'UTI suivante : public.plain-text .

Pour vérifier quelle est l'UTI d'un fichier particulier, vous pouvez exécuter :

mdls -name kMDItemContentType ~/my-file.ext

~/my-file.ext est le chemin d'accès au fichier.

QuickLook vérifie l'UTI d'un fichier pour choisir un générateur QuickLook à utiliser pour l'affichage. Les générateurs QL qui sont livrés avec MacOS peuvent être trouvés dans /System/Library/QuickLook/ .

Les générateurs QL ont le .qlgenerator et vous pouvez voir leur contenu en cliquant avec le bouton droit de la souris dessus et en sélectionnant Show Package Contents . Dans le dossier Contents il y a un fichier nommé Info.plist . Ce fichier liste les UTIs avec lesquelles le générateur sera utilisé.

Donc, le Info.plist de la Text.qlgenerator énumérera, entre autres, les public.plain-text UTI. Tout fichier qui possède cette UTI sera prévisualisé en utilisant Text.qlgenerator .

Les générateurs trouvés dans /System/Library/QuickLook/ sont verrouillées, ce qui signifie que vous ne pouvez pas (en principe) les modifier.

C'est là qu'interviennent les plugins QuickLook que l'on trouve sur Internet, comme QLStephen. Ces plugins sont installés dans ~/Library/QuickLook (notez que ce chemin commence par ~/ ce qui signifie que c'est votre utilisateur Library et non /System/Library/ ) et d'étendre les capacités de QuickLook. En d'autres termes, ils fournissent au système de nouveaux générateurs qui fonctionnent avec des UTI non couvertes par les générateurs du système, ou les étendent.

Problème

Lorsque vous réassignez l'application avec laquelle un type de fichier est ouvert (par exemple, Info > Ouvrir avec > [app] > Changer tout`), l'application peut attribuer à ce type de fichier une UTI qui n'est pas celle par défaut, ce qui signifie que QuickLook ne reconnaîtra pas l'UTI et n'attribuera pas de générateur (et vous verrez juste une icône de fichier plutôt que le contenu du fichier).

Par exemple, le plugin QLColorCode doit prévisualiser le contenu de LaTeX .tex mais dans mon cas, ce n'était pas le cas. Cela est dû au fait que j'ai sélectionné Sublime Text comme application qui ouvre .tex et que ST a attribué une UTI différente de celle utilisée dans QLColorCode pour les fichiers de type .tex des fichiers.

Solution

La solution au problème consiste simplement à faire savoir au plugin QL qu'il doit également fonctionner avec ces UTI "non par défaut".

Pour ce faire, il suffit de modifier le fichier Info.plist du plugin dans ~/Library/QuickLook ( n'essayez pas d'éditer les générateurs du système dans /System/Library/QuickLook ).

Plus précisément, vous devez d'abord localiser les lignes suivantes dans le fichier Info.plist (pour ouvrir et modifier ce fichier, vous devez cliquer avec le bouton droit de la souris sur celui-ci et sélectionner TextEdit ) :

...
<key>LSItemContentTypes</key>
  <array>
    <string>public.source-code</string>
    ...
  </array>
...

Ensuite, vous devez ajouter les UTI "non standard" dans le tableau, comme suit :

...
<key>LSItemContentTypes</key>
  <array>
    <string>public.source-code</string>
    ...
    <string>dyn.ah62d4rv4ge80g5dx</string>
    <string>dyn.ah62d4rv4ge81e5pe</string>
  </array>
...

Comme mentionné ci-dessus, pour obtenir l'UTI d'un fichier particulier, faites :

mdls -name kMDItemContentType ~/my-file.ext

Dans le résultat, vous verrez quelque chose comme ceci :

kMDItemContentType = "dyn.ah62d4rv4ge80g5dx"

La chaîne entre guillemets est l'UTI de ~./my-file .

Après avoir ajouté les UTIs, il suffit de sauvegarder le fichier Info.plist et le fermer.

Maintenant, QuickLook devrait fonctionner avec le générateur choisi pour les fichiers dont les UTIs ont été ajoutés en Info.plist .

Pour être sûr, vous pouvez exécuter ce qui suit pour réinitialiser QL et son cache :

qlmanage -r
qlmanage -r cache

Fin

1 votes

Excellente contribution - vous avez apporté un éclairage sur le sujet. Pour ma part, j'ai défini Sublime Text comme application par défaut pour la plupart des fichiers sources, mais les mdls montrent qu'ils ont toujours leurs anciennes UTI. Je n'arrive pas à faire en sorte que QLStephen, QLMarkdown ou QLColorCode prévisualisent quoi que ce soit. J'ai lancé xattr -d, qlmanage -r, qlmanage -r cache, redémarré le Finder et redémarré un certain nombre de fois...

3 votes

C'est corrigé. La solution était de supprimer Glance.app. Après ça, tout. simple. Quicklook. Preview fonctionne comme un charme...

0 votes

Excellente réponse. Question/demande d'amélioration --- comment éviter que les plugins "personnalisés" ne cassent la fonctionnalité OK en écrasant le comportement du système d'exploitation, ou au moins provoquer un "déclenchement en chaîne" de sorte que si mon ~/Bibliothèque/QuickLook/custom.ql ne parvient pas à rendre quelque chose, il tentera toujours d'utiliser tout générateur QuickLook attribué par le système pour le même fichier ? Je trouve que la plupart des plugins gratuits ne fonctionnent pas pour de nombreux fichiers.

11voto

Shawn Points 8120

Jetez un coup d'œil à la Plugin QuickLook Stephen Il ouvre presque tout ce que je lui envoie (à condition que ce soit du texte).

1 votes

Cela ne fonctionne pas pour *.yml, *.cs, *.csproj, *.config, *.vim, *.css, .viminfo- ce sont tous les éléments que j'ai vérifiés jusqu'à présent dans les 10 dernières minutes.

1voto

RMilk Points 21

Des détails fantastiques, très appréciés. Quelques éléments supplémentaires que j'ai rencontrés :

  • Si le ~/Library/Quicklook/ n'existe pas, vous devez le créer manuellement.

  • Dans mon cas, je voulais étendre les aperçus de textes pour .bat y .log . J'ai donc dû créer les sous-répertoires pour le générateur de texte Text.qlgenerator . Quand je regarde dans /System/Library/QuickLook/ Je vois des répertoires que je n'ai pas dans mon répertoire personnel. Ces commandes créent les sous-répertoires Quickview si je ne les avais pas, puis copient le fichier système dans mon répertoire personnel :

    mkdir -p ~/Library/Quicklook/Text.qlgenerator/Contents/

    cp /System/Library/Quicklook/Text.qlgenerator/Info.plist ~/Library/Quicklook/Text.qlgenerator/Contents/Info.plist

  • Ensuite, je détermine l'UTI avec la commande fournie :

mdls -name kMDItemContentType ~/my_file.bat

kMDItemContentType = "dyn.ah62d4rv4ge80e2py"
  • Et ensuite éditer le fichier plist pour ajouter l'UTI dyn.ah62d4rv4ge80e2py à mon fichier plist dans ~/Library/Quicklook/Text.qlgenerator/Contents/Info.plist

  • Enfin, je peux vérifier que le quicklook a fonctionné correctement avec la fonction qlmanage -p option. Cela imprime quelques informations de débogage et ouvre ensuite la fenêtre d'aperçu QuickLook sur ce fichier :

qlmanage -p ~/my_file.bat

0 votes

Belle réponse, mais je viens de remarquer un problème avec le code de copie. /System/Library/Quicklook/Text.qlgenerator/Info.plist n'existe PAS. Il devrait être /System/Library/Quicklook/Text.qlgenerator/Contents/Info.pli‌​st . (remarquez l'ajout du mot "contenu")

1voto

tubedogg Points 14839

La méthode la plus simple que j'ai trouvée pour y parvenir consiste à installer le plugin suivant QLColorCode . Il s'agit d'un excellent plugin qui inclut la coloration syntaxique du code source pour un certain nombre de langues.

Une fois qu'il est installé, il est très facile d'ajouter la prise en charge d'autres UTI (Uniform Type Indicator). Pour obtenir l'UTI de votre fichier particulier, ouvrez le terminal ou votre application de terminal préférée et utilisez cette commande :

mdls -name kMDItemContentType /path/to/file.ext

Cela devrait donner quelque chose comme ceci :

kMDItemContentType = "dyn.ah62d4rv4ge81s7dg"

Puis naviguez dans le Finder jusqu'à ~/Bibliothèque/QuickLook. Faites un clic droit sur QLColorCode.qlgenerator et choisissez Show Package Contents. Ouvrez Contents/Info.plist dans un éditeur de texte. Trouvez le code suivant :

            <key>LSItemContentTypes</key>
            <array>
                <string>public.source-code</string>
                ...
            </array>

Sur une nouvelle ligne après <string>public.source-code</string> , ajouter <string>dyn.yourUTIhere</string> pour chaque nouvelle UTI que vous voulez ajouter.

Enregistrez le fichier, puis exécutez ces commandes dans Terminal ou votre application de terminal préférée :

qlmanage -r
qlmanage -r cache

Les fichiers avec l'UTI que vous avez ajouté devraient maintenant s'ouvrir dans QuickLook.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X