在文本编辑器中打开plist文件时遇到问题


20

通过Finder,我可以毫无困难地预览plist文件。例如,结合使用Quick Look,~/Library/Preferences/com.apple.Safari.RSS.plist我可以很好地预览其内容:

快速浏览

但是,如果我随后尝试使用TextEdit或任何其他编辑器打开文件(到目前为止,我已经尝试了SublimeText,TextMate,Vim,Nano和Coda 2),则编码似乎已关闭:

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

如果使用TextEdit将其打开,则外观如下:

文字编辑

我曾尝试更改Sublime Text和其他应用程序中的编码,但这无济于事。

有什么想法吗?

我正在运行10.8.4。

Answers:


23

plist文件不一定是纯文本文件,因此需要通过转换器运行。Finder和Xcode(具有plist编辑器)无需告知用户即可执行此操作

二进制格式记录在此C代码中,因此任何应用程序都可以将其转换,并且有人在此处用英语和更多Apple文档编写了格式说明,但请注意,它引用了旧路径。/Developer/Documentation

命令行程序plutil可以与XML进行相互转换

例如,在标准输出上以XML格式查看二进制属性列表:

plutil -convert xml1 -o - <file name>

也可以将二进制文件转换为XML plist,然后保留它,以便用户程序可以读取其中任何一个。

plutil -convert xml1 <file name>

谢谢。我知道了。因此,如果需要编辑,则需要将其转换为XML,使用编辑器将其打开,然后再将其转换回去。我会假设是这样。除非我弄错了,否则无需回复!
apc 2013年

3
您还可以plutil -convert xml1 ~/Library/Preferences/com.apple.Safari.RSS.plist用于将plist转换为XML。而且,在编辑plist之后,您不必将其转换回二进制文件。
Lri 2013年

1
> Finder和Xcode(具有plist编辑器)在没有告知用户的情况下执行此操作。确切地说,不是Finder在执行此操作,而是以QuickLook插件形式出现的QuickLook。
saagarjha

您还可以使用较新的defaults read <file>命令来获取它的一种JSON视图。
dlamblin



0

我制作了一个CMD(批处理)文件来帮助人们在Windows上转换plist文件:
说明:1. 复制
所有代码
2.创建新的文本文档
3.粘贴代码
4.保存文件
5.使用重命名文件“ .bat”而不是“ .txt”
6.打开它

    @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

或者,您可以使用转换后未关闭的版本来进行多次转换而无需重新打开文件:

    @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

1
嗨,欢迎问不同!这个答案在其他地方可能更有用-OP并未询问Windows的使用情况。
苏格兰,

-1

您可以使用以下命令行将属性列表文件从二进制格式转换为XML:

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

然后像往常一样编辑它。其次,您不必将其转换回去,因为通常应用程序会同时识别两种格式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.