Я открыл /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict
в vim, и это выглядит как тарабарщина. Есть ли способ преобразовать его в удобочитаемый для человека, чтобы увидеть, что он содержит?
Если у вас установлен plutil
Вы можете запустить этот Applescript, который создаст текстовую версию словаря для чтения.
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
ИЛИ
На macosxhints есть старая подсказка — 10.4: редактируйте двоичные (и обычные) файлы plist с помощью vim
В посте также есть ссылка на скрипт vim , который все это делает.
Который может делать то, что вы хотите. (сам не использую vim)
Цитата из поста ( Но, пожалуйста, зайдите и прочитайте, так как там есть комментарии и примечания, которые вам понадобятся:
Что оно делает? Он читает файл plist, проверяет и запоминает, является ли он двоичным, при необходимости преобразует его в обычный текст и включает подсветку синтаксиса для XML. Когда вы снова сохраняете файл, он снова преобразуется в двоичный для записи, если он был двоичным в начале. Если файл не был двоичным или если преобразование в двоичный не удалось (что может произойти, если в файле есть синтаксические ошибки), файл сохраняется в текстовом формате. Если изначально двоичный plist сохраняется как обычный текст из-за синтаксических ошибок, и вы исправляете ошибки и сохраняете файл снова, он записывается в двоичном формате. Если вы открываете двоичный файл и просто просматриваете его без внесения каких-либо изменений, вы все равно можете выйти из vim, используя обычный :q (нет необходимости в :q!), и файл останется нетронутым (все еще в двоичном формате). Все это должно работать даже при работе с несколькими буферами (файлами),
Скопируйте файл в другой каталог. Перейдите в этот каталог и запустите
plutil -convert xml1 StandardKeyBinding.dict
в терминале. (Вы можете преобразовать его в json
формат, заменив xml1
на json
.) Затем запустите
cat -v StandardKeyBinding.dict
и теперь вы можете увидеть файл в удобочитаемом виде, как показано ниже.
<?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>
Советы: Запустите man cat
, чтобы увидеть, что cat -v
делает.
Вот способ сделать StandardKeyBinding.dict
файл правильно читаемым:
plutil -convert xml1 StandardKeyBinding.dict
Бесполезно конвертировать обратно.
Попробуйте также
/usr/libexec/PlistBuddy -c print /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict
трасктр