Problème d'ouverture des fichiers plist dans l'éditeur de texte

20

Depuis le Finder, je peux prévisualiser un fichier plist sans aucune difficulté. Par exemple, en utilisant Quick Look avec ~/Library/Preferences/com.apple.Safari.RSS.plistj'obtiens un joli aperçu de son contenu:

Coup d'oeil

Cependant, si j'essaie ensuite d'ouvrir le fichier, soit avec TextEdit, soit avec tout autre éditeur (j'ai essayé SublimeText, TextMate, Vim, Nano et Coda 2 jusqu'à présent), l'encodage semble être désactivé:

bplist00Ò_"FixedRefreshesInBackgroundSettings_(com.apple.PreferenceSync.ExcludeSyncKeys ¡ 2]^����������������������������`

Voici à quoi cela ressemble si je l'ouvre avec TextEdit:

TextEdit

J'ai essayé de changer l'encodage dans Sublime Text et d'autres applications, mais cela n'aide pas.

Des pensées?

J'utilise 10.8.4.

apc
la source

Réponses:

23

les fichiers plist ne sont pas nécessairement du texte brut, ils doivent donc être exécutés via un convertisseur. Finder et Xcode (qui a un éditeur plist) le font sans en informer l'utilisateur

Le format binaire est documenté dans ce code C afin que toute application puisse le convertir et quelqu'un a écrit une description de format en anglais et plus de documentation Apple ici mais notez qu'il fait référence à d'anciens chemins dans/Developer/Documentation

Le programme de ligne de commande plutil peut convertir vers et depuis XML

par exemple pour afficher une liste de propriétés binaires au format XML sur stdout:

plutil -convert xml1 -o - <file name>

Aussi pour convertir un binaire en un plist XML en place, puis le laisser afin que le programme utilisateur puisse lire l'un ou l'autre.

plutil -convert xml1 <file name>
user151019
la source
Merci. Je vois. Donc, si je dois le modifier, je dois le convertir en XML, l'ouvrir avec un éditeur, puis le reconvertir. Je suppose que c'est le cas. Pas besoin de répondre sauf si je me trompe!
apc
3
Vous pouvez également utiliser plutil -convert xml1 ~/Library/Preferences/com.apple.Safari.RSS.plistpour convertir le plist en XML sur place. Et après avoir édité le plist, vous n'avez pas besoin de le reconvertir en binaire.
Lri
1
> Finder et Xcode (qui a un éditeur plist) le font sans le dire à l'utilisateur. Pour être précis, ce n'est pas le Finder qui fait ça, c'est QuickLook sous la forme d'un plugin QuickLook.
saagarjha
Vous pouvez également utiliser la nouvelle defaults read <file>commande pour en obtenir une sorte de vue JSON.
dlamblin
5

Vous pouvez également modifier des fichiers plist avec PlistBuddy , qui est un programme en ligne de commande.

PlistBuddy se trouve près de /usr/libexec/PlistBuddy.

lhf
la source
1
Apple a supprimé cette page et je ne trouve aucune archive. Le manuel est toujours disponible sur macOS Mojave.
Franklin Yu
@FranklinYu, en effet. Il y a aussi un tutoriel sur marcosantadev.com/manage-plist-files-plistbuddy .
lhf
0

J'ai créé un fichier CMD (Batch) pour aider les gens à convertir des fichiers plist sous Windows:
Instructions:
1.Copiez tout le code
2.Créez un nouveau document texte
3. Collez le code
4.Enregistrez le fichier
5.Renommez le fichier avec ".bat" au lieu de ".txt"
6.Ouvrez-le

    @echo off
    title PLIST Converter ~SyndiShanX
    mode 1000
    color 0b

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :filedirectory
    cls
    echo Either: Type the Directory of the File: (Ex. C:\Users\(UserName)\Desktop\File.plist) or Drag and Drop File onto This Window
    echo Made by: [SyndiShanX]
    echo File Directory:
    set /p directory=
    cls

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :convertfile
    start "" "C:\Program Files\Common Files\Apple\Apple Application Support\plutil.exe" -convert xml1 %directory%
    goto complete

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :complete
    title File Conversion Complete!
    color 0a
    echo File Conversion Complete!
    pause
    cls
    goto exit

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :exit
    color 0c
    title Exiting...
    echo Exiting...
    pause
    cls
    exit

Ou vous pouvez utiliser la version qui ne se ferme pas après la conversion pour autoriser plusieurs conversions sans rouvrir le fichier:

    @echo off
    title PLIST Converter ~SyndiShanX
    mode 1000
    color 0b

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :filedirectory
    cls
    echo Either: Type the Directory of the File: (Ex. C:\Users\(UserName)\Desktop\File.plist) or Drag and Drop File onto This Window
    echo Made by: [SyndiShanX]
    echo File Directory:
    set /p directory=
    cls

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :convertfile
    start "" "C:\Program Files\Common Files\Apple\Apple Application Support\plutil.exe" -convert xml1 %directory%
    goto filedirectory
SyndiShanX
la source
1
Salut, et bienvenue à Ask Different! Cette réponse peut être plus utile ailleurs - l'OP ne s'enquiert pas de l'utilisation de Windows.
Scot
-1

Vous pouvez convertir le fichier de liste de propriétés du format binaire en XML à l'aide de la ligne de commande suivante:

plutil -convert xml1 -o file.plist file.plist

Modifiez-le ensuite comme d'habitude. Deuxièmement, vous n'avez pas à le reconvertir, car les applications reconnaissent généralement les deux formats.

kenorb
la source