Sous OS X, comment changez-vous le «type» d'un fichier?

16

Sous OS X, je voudrais changer le libellé "Kind" associé aux fichiers. Beaucoup de mes fichiers s'affichent en tant que «fichier texte brut» alors qu'ils sont en réalité des types de fichiers javascript, php, css et autres.

Je n'ai aucun problème à les faire s'ouvrir avec l'application que je veux, c'est facile à faire - il y a beaucoup de threads à ce sujet.

La chose qui me dérange, c'est quand j'ai un gros dossier avec beaucoup de fichiers, j'aimerais pouvoir trier par type et avoir tous les fichiers CSS, PHP et JS ensemble.

entrez la description de l'image ici

J'ai vu le type de fichier qui plante sur OSX, et j'ai vu le changement rapide mais je ne sais pas si c'est vraiment ce dont j'ai besoin.

Peut-être que quelqu'un d'autre a déjà traité cela et sait comment y remédier?

cwd
la source
Intéressant. Il ne pas semble être liée à l'utilité véritable de ligne de commande file.
dmckee --- chaton ex-modérateur
Vous pouvez certainement définir quelque chose comme TextWrangler comme gestionnaire de fichiers par défaut pour les fichiers JS, PHP et CSS? Ensuite, il les répertoriera en tant que fichiers TextWrangler.
Je pense que le problème pourrait avoir été avec la coda. Daniel Beck a aidé à le résoudre ci-dessous. Une question de suivi, cependant: à quoi sert l'utilitaire de changement rapide que j'ai trouvé (ci-dessus)? Il a quelque chose pour un "type" à 4 lettres et un "créateur" à 4 lettres ...?
cwd

Réponses:

8

Le type de fichier est généralement défini par l'application qui gère ce type de fichier dans Launch Services. Pour la plupart d'entre eux, il s'agit de l'application ouvrant un type de fichier par défaut, dans votre cas, Coda.

Les applications spécifient les types de fichiers dans leur Contents/Info.plistfichier. Vous pouvez le voir et le modifier en cliquant avec le bouton droit sur l'ensemble d'applications et en sélectionnant Afficher le contenu du package .

On dirait que les gens de Panic ont foiré quelque chose. Tous les types de fichiers qu'ils définissent sont PlainTextType:

entrez la description de l'image ici

Vous pouvez modifier le nom du type de fichier en modifiant toutes les Document Type Nameentrées dans l' éditeur de liste de propriétés ou toutes les CFBundleTypeNameentrées lors de la modification du fichier dans un éditeur de texte normal. Remplacez simplement ce que vous voulez voir apparaître comme description à la place.

entrez la description de l'image ici

Modifiez, enregistrez et assurez-vous que les services Launch lancent (redémarrez, déconnectez-vous ou déplacez simplement l'application vers un autre dossier et inversement), et le résultat ressemble à ceci:

entrez la description de l'image ici


Vous devez répéter cette opération chaque fois qu'il y a une mise à jour de l'application, car celles-ci remplacent le Info.plistfichier que vous avez modifié. Mieux vaut signaler un bug aux développeurs de Panic.

Daniel Beck
la source
et les gens de Panic rapporteront (probablement) qu'un fichier .php, .js ou .css est toujours un fichier texte brut. sa sémantique, et ce n'est pas le but des UTI. ce n'est pas un nouveau débat; Les IU ont été mal comprises et mal utilisées depuis leur création, en partie à cause de ce problème même, auquel Apple, dans sa sagesse infinie, n'a encore rien fait pour remédier.
peelman
@peelman Apple ne le fait pas comme ça dans TextEdit Info.plist. Ils sont en fait capables de fournir des noms de type de document appropriés. Et les utilisateurs se soucient plus de la colonne Kind du Finder que des aspects techniques des IU.
Daniel Beck
@db - PListEdit Pro est-il la même chose que l'éditeur de liste de propriétés? J'ai le premier et mon écran est un peu différent. Merci pour une réponse assez complète :)
cwd
nm, vient de trouver l'éditeur de liste de propriétés dans le /Developer/Applications/Utilitiesdossier. Je n'avais pas QS cataloguant ce dossier. Oups.
cwd
Je cherchais quelque chose sur ces lignes, mais est-il possible de changer la façon dont le viseur gère le tri, comme discuté ici ?
Konrad
2

Cela s'est produit lorsque j'ai mis à niveau vers Office 2016 et supprimé Office 2011 - le Finder a décidé que les .dotfichiers (modèles MS Word 97-2004) étaient des fichiers DOT GraphViz , même si je n'avais pas installé GraphViz, et j'ai décidé que Nisus Writer devait être l'application par défaut.

J'ai réussi à corriger l'application par défaut de manière simple dans le Finder (Obtenir des informations / Ouvrir avec: / Tout changer…), mais le type de fichier était toujours incorrect. Selon la réponse de Daniel Beck, j'ai vérifié les Info.plistsversions de Word 2016 et Nisus Writer, mais elles étaient toutes les deux correctes.

J'ai fini par devoir reconstruire le registre Launch Services avec

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

(depuis le Terminal) et qui l'a finalement corrigé.

David Moles
la source
1

il appartient au programme de sauvegarde de définir l'UTI (identificateur de type uniforme) pour un fichier donné. si vous parvenez à les modifier, puis modifiez le fichier dans le programme que vous avez créé pour les définir en texte brut, ils seront probablement rétablis en texte brut lorsque vous les réenregistrerez.

techniquement, ces fichiers SONT en texte brut, ils peuvent être ouverts par n'importe quel éditeur qui prend en charge l'UTI en texte brut, qui est le but des UTI, donc ce n'est pas une inexactitude, c'est un exercice sémantique. j'évite personnellement ces problèmes en mettant mes images, feuilles de style et fichiers javascript dans des sous-dossiers.

Quoi qu'il en soit, vous devrez probablement parcourir l'éditeur choisi et voir s'il prend en charge un moyen de définir les relations d'extension de fichier UTI->, ou un moyen de définir avec quel UTI un fichier est enregistré.

peelman
la source
1

Les descriptions des types de noyau OS X peuvent être modifiées en modifiant InfoPlist.strings dans le CoreTypes.bundle.

La liste des propriétés est un binaire compilé , donc juste au cas où faire une sauvegarde avant de la modifier.Les mises à jour du système la remplaceront probablement , alors gardez une copie ou (ce que je recommande) liez votre version modifiée à l'emplacement de l'original - en supposant que votre copie est nommé InfoPlist.strings.customet se trouve dans le même répertoire que l'original:

cd /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/English.lproj

cp InfoPlist.strings InfoPlist.strings.custom - votre copie personnalisée

mv InfoPlist.strings InfoPlist.strings.backup - mouvement d'origine

ouvrir InfoPlist.strings.customavec TextMate car il analyse bien les listes de propriétés binaires, en supposant que vous avez mateinstallé:

mate /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/English.lproj/InfoPlist.strings.custom

une fois que vous avez terminé vos modifications, liez le fichier d'origine en place:

sudo ln -s /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/English.lproj/InfoPlist.strings.custom /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/English.lproj/InfoPlist.strings

et relancez le Finder avec killall Finder- vous devriez voir les changements dans le Finder après cela.

par exemple, je suis passé "Portable Document Format (PDF)" = "Portable Document Format (PDF)";à "Portable Document Format (PDF)" = "PDF";et ... dis au revoir aux longues chaînes "Kind" ennuyeuses dans le Finder :-)

Avant Aprèsentrez la description de l'image ici entrez la description de l'image ici

REMARQUE: j'utilise l' anglais comme langue du système - si vous avez un autre ensemble de langues, vous devez changer le nom du répertoire en langue appropriée:

cd /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Allemand.lproj/ <- par exemple, disons allemand

Mise à jour 1 (découverte de plutil):

vous pouvez utiliser plutilpour convertir du format binaire en XML ou JSON

sudo plutil -convert json InfoPlist.strings -o InfoPlist.strings.json

après avoir édité le .json, reconvertissez (compilez?) en un format binaire:

sudo plutil -convert binary1 InfoPlist.strings.json -o InfoPlist.strings

MISE À JOUR 2

vous voulez savoir où se trouvent ces chaînes "Kind" agaçantes?

sudo find ./ -name '*.plist' -o -name '*.strings' -exec plutil -p {} \; | grep"annoying"annoyingest la chose qui dérange le s ** t de la journée

PJJ
la source
0

Jetez un oeil à duti

Un outil en ligne de commande pour sélectionner les applications par défaut pour les types de fichiers, sur OS X

ocodo
la source