Wie verschönere ich binäre Diktatdateien?

Ich habe /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dictin vim geöffnet, und es sieht aus wie Kauderwelsch. Gibt es eine Möglichkeit, es in für Menschen lesbare umzuwandeln, nur um zu sehen, was es enthält?

Antworten (4)

Wenn Sie plutil installiert haben

Sie können dieses Applescript ausführen, das eine Textversion des Wörterbuchs zum Lesen erstellt.

   property copyScriptPath : "~/Documents/" (* path dir for text version*)

tell application "Finder"
    set selectFiles to (get selection) (* get the finder selection*)
end tell
repeat with i from 1 to number of items in selectFiles
    (* convert to POSIX path*)
    set this_item to quoted form of POSIX path of (item i of selectFiles as alias)


    (* get the file name , add it to an alias, then use plutil to read and write atext version out using the original name*)
    do shell script "name=`basename " & this_item & "`;/usr/bin/plutil -convert xml1  " & this_item & " -o  " & copyScriptPath & "\"$name\".txt"
end repeat

ODER

Es gibt einen alten Hinweis auf macosxhints - 10.4: Bearbeiten Sie binäre (und normale) Plist-Dateien mit vim

Der Beitrag enthält auch den Link zum vim-Skript , das all dies tut.

Das kann tun, was Sie wollen. (benutze vim selbst nicht)

Zitat aus dem Beitrag (Aber bitte gehen Sie und lesen Sie es, da es Kommentare und Anmerkungen gibt, die Sie benötigen werden:

Was tut es? Es liest eine Plist-Datei, prüft und merkt sich, ob sie binär ist, wandelt sie bei Bedarf in Klartext um und schaltet Syntax-Highlinght für XML ein. Wenn Sie die Datei erneut speichern, wird sie zum Schreiben wieder in Binär konvertiert, wenn sie am Anfang binär war. Wenn die Datei nicht binär war oder die Konvertierung in binär fehlschlägt (was passieren kann, wenn Sie Syntaxfehler in Ihrer Datei haben), wird die Datei im Textformat gespeichert. Wenn eine ursprünglich binäre Plist aufgrund von Syntaxfehlern als einfacher Text gespeichert wird und Sie die Fehler beheben und die Datei erneut speichern, wird sie im Binärformat geschrieben. Wenn Sie eine Binärdatei öffnen und sie nur anzeigen, ohne Änderungen vorzunehmen, können Sie Vim immer noch mit dem normalen :q beenden (kein Bedarf für :q!) Und die Datei bleibt unberührt (immer noch im Binärformat). All dies sollte auch funktionieren, wenn mit mehreren Puffern (Dateien) gearbeitet wird.


Kopieren Sie die Datei in ein anderes Verzeichnis. Wechseln Sie in dieses Verzeichnis und führen Sie es aus

plutil -convert xml1 StandardKeyBinding.dict

im Endgerät. (Sie können es in das jsonFormat konvertieren, indem Sie es durch ersetzen xml1. json) Führen Sie es dann aus

cat -v StandardKeyBinding.dict

und Sie können die Datei jetzt lesbar sehen, wie unten.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>^C</key>
    <string>insertNewline:</string>
    <key>^H</key>
    <string>deleteBackward:</string>
    <key>  </kev>
    <string>insertTab:</string>
    <key>
</key>
    <string>insertNewline:</string>
    <key>^M</key>
    <string>insertNewline:</string>
    <key>^Y</key>
    <string>insertBacktab:</string>
    <key>^[</key>
    <string>cancelOperation:</string>
    <key>$?M-^\M-^@</key>
    <string>moveUpAndModifySelection:</string>
    <key>$?M-^\M-^A</key>
    <string>moveDownAndModifySelection:</string>
    <key>$?M-^\M-^B</keV>
    <string>moveLeftAndModifySelection:</string>

Tipps: Führen Sie aus man cat, um zu sehen, was cat -vfunktioniert.

Hier ist die Methode, um StandardKeyBinding.dictdie Datei korrekt lesbar zu machen:

plutil -convert xml1 StandardKeyBinding.dict

Es nützt nichts, es zurück zu konvertieren.

Du meinst, du musst es nicht zurückwandeln?

Versuchen Sie es auch

/usr/libexec/PlistBuddy -c print /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict