Проблема з відкриттям файлів плістів у текстовому редакторі


20

З Finder я можу без попереднього перегляду переглядати файл плістів. Наприклад, за допомогою Швидкого перегляду ~/Library/Preferences/com.apple.Safari.RSS.plistя отримую хороший попередній перегляд його вмісту:

Швидкий огляд

Однак якщо я потім спробую відкрити файл або з TextEdit, або з будь-яким іншим редактором (я вже пробував SublimeText, TextMate, Vim, Nano та Coda 2), кодування буде вимкнено:

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

Ось як це виглядає, якщо я відкрию його за допомогою TextEdit:

TextEdit

Я намагався змінити кодування в Sublime Text та інших додатках, але це не допомагає.

Будь-які думки?

Я біжу 10.8.4.

Відповіді:


23

Файли plist - це не обов'язково звичайний текст, тому їх потрібно запустити через перетворювач. Finder та Xcode (у якому є редактор плістів) роблять це, не повідомляючи користувача

Бінарний формат задокументований у цьому коді С, тому будь-яка програма може його перетворити, і хтось написав опис формату англійською та більше документації Apple тут, але зауважте, що він посилається на старі шляхи в/Developer/Documentation

Плутіл програми командного рядка може конвертувати в XML і з нього

наприклад, щоб переглянути список бінарних властивостей у форматі XML у stdout:

plutil -convert xml1 -o - <file name>

Крім того, щоб перетворити бінарний файл у список XML на місці, а потім залишити його, щоб програма користувача могла читати будь-яку.

plutil -convert xml1 <file name>

Спасибі. Я бачу. Тож якщо мені потрібно відредагувати, мені потрібно перетворити його в XML, відкрити його за допомогою редактора, а потім перетворити його назад. Я припускаю, що це так. Не потрібно відповідати, якщо я не помилився!
apc

3
Ви також можете скористатись plutil -convert xml1 ~/Library/Preferences/com.apple.Safari.RSS.plistперетворенням списку в XML на місці. І після редагування плісту вам не доведеться перетворювати його у бінарний.
Лрі

1
> Finder та Xcode (у якому є редактор plist) роблять це, не повідомляючи користувачеві. Якщо точний, це не Finder, це QuickLook у вигляді плагіна QuickLook.
saagarjha

Ви також можете скористатися новою defaults read <file>командою, щоб отримати її вид JSON.
dlamblin

5

Ви також можете редагувати файли плістів за допомогою PlistBuddy , що є програмою командного рядка.

PlistBuddy знаходиться за адресою /usr/libexec/PlistBuddy.


1
Apple видалила цю сторінку, і я не можу знайти жодного архіву. Посібник все ще доступний на macOS Mojave.
Франклін Ю

@FranklinYu, справді. Також є підручник на сайті marcosantadev.com/manage-plist-files-plistbuddy .
lhf


0

Я створив файл CMD (Batch), щоб допомогти людям із перетворенням файлів- плісток у Windows:
Інструкції:
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
Привіт, і ласкаво просимо до Питання про різні! Ця відповідь може бути кориснішою в іншому місці - ОП не запитує про використання Windows.
Скотт

-1

Ви можете перетворити файл списку властивостей з двійкового формату в XML за допомогою наступного командного рядка:

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

Потім відредагуйте його як завжди. По-друге, вам не доведеться конвертувати його назад, оскільки зазвичай програми розпізнають обидва формати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.