He abierto /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict
en vim, y parece un galimatías. ¿Hay alguna manera de convertirlo en legible por humanos solo para ver lo que contiene?
Si tienes Plutil instalado
Puede ejecutar este Applescript que creará una versión de texto del diccionario para que lo lea.
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
O
Hay una vieja pista sobre macosxhints - 10.4: Editar archivos plist binarios (y normales) con vim
La publicación también tiene el enlace al script vim que hace todo esto.
Que puede hacer lo que quieras. (no use vim yo mismo)
Cita de la publicación (pero vaya y léala, ya que hay comentarios y notas que necesitará:
¿Qué hace? Lee un archivo plist, verifica y memoriza si es binario, lo convierte a texto sin formato si es necesario y activa el resaltado de sintaxis para XML. Cuando guarda el archivo nuevamente, se convierte nuevamente a binario para escribir si era binario al principio. Si el archivo no era binario o si la conversión a binario falla (lo que puede suceder si tiene errores de sintaxis en su archivo), el archivo se almacena en formato de texto. Si un plist originalmente binario se guarda como texto sin formato debido a errores de sintaxis y corrige los errores y guarda el archivo nuevamente, se escribe en formato binario. Si abre un archivo binario y simplemente lo ve sin hacer ningún cambio, aún puede salir de vim usando el :q normal (¡no es necesario :q!) y el archivo se deja intacto (todavía en formato binario). Todo esto debería funcionar incluso cuando se trabaja con varios búferes (archivos),
Copie el archivo a algún otro directorio. Mover a ese directorio y ejecutar
plutil -convert xml1 StandardKeyBinding.dict
en terminales (Puede convertirlo a json
formato reemplazándolo xml1
con json
). Luego ejecute
cat -v StandardKeyBinding.dict
y puede ver el archivo de una manera legible ahora, como a continuación.
<?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>
Consejos: Ejecutar man cat
para ver lo que cat -v
hace.
Aquí está el método para hacer que StandardKeyBinding.dict
el archivo sea legible correctamente:
plutil -convert xml1 StandardKeyBinding.dict
No sirve para volver a convertirlo.
Prueba también
/usr/libexec/PlistBuddy -c print /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict
camionero