31

From Finder, I can preview a plist file without any difficulties. For example, using Quick Look with ~/Library/Preferences/com.apple.Safari.RSS.plist I get a nice preview of its contents:

Quick Look

However, if I then try to open the file, either with TextEdit, or any other editor (I've tried SublimeText, TextMate, Vim, Nano, and Coda 2 so far), the encoding appears to be off:

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

Here's what it looks like if I open it with TextEdit:

TextEdit

I've tried changing the encoding in Sublime Text and other apps, but that doesn't help.

Any thoughts?

I'm running 10.8.4.

5 Answers 5

39

plist files are not necessarily plain text so they need to be run through a converter. Finder and Xcode (which has a plist editor) do this without telling the user

The binary format is documented in this C code so any application can convert it and someone has written a format description in English and more Apple documentation here but note that it references old paths in /Developer/Documentation

The command line program plutil can convert to and from XML

e.g. to view a binary property list in XML format on stdout:

plutil -convert xml1 -o - <file name>

Also to convert a binary to a XML plist in place and then leave it so that the user program can read either.

plutil -convert xml1 <file name>
4
  • Thanks. I see. So if I need to edit it, I need to convert it to XML, open it with an editor, and then convert it back. I will assume this is so. No need to reply unless I got it wrong!
    – apc
    Commented Sep 14, 2013 at 14:49
  • 5
    You can also use plutil -convert xml1 ~/Library/Preferences/com.apple.Safari.RSS.plist to convert the plist to XML in place. And after you edit the plist, you don't have to convert it back to binary.
    – Lri
    Commented Sep 14, 2013 at 15:35
  • 2
    > Finder and Xcode (which has a plist editor) do this without telling the user To be precise, it’s not Finder that’s doing this, it’s QuickLook in the form of a QuickLook plugin.
    – saagarjha
    Commented Mar 17, 2018 at 8:27
  • 1
    You can also use the newer defaults read <file> command to get a kind of JSON view of it.
    – dlamblin
    Commented Jun 3, 2019 at 5:45
6

You can also edit plist files with PlistBuddy, which is a command-line program.

PlistBuddy is located at /usr/libexec/PlistBuddy.

2
5

Since you mentioned Sublime Text, there is now a plugin you can use which automatically does the conversion for you:

https://packagecontrol.io/packages/BinaryPlist

0

BBEdit will convert binary plists and then save them correctly on-the-fly.

-2

You can convert the property list file from binary format into XML using the following command line:

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

Then edit it as usual. Secondly you don't have to convert it back, as usually apps recognise both formats.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .