DefaultKeyBinding.dict
~/Library/KeyBindings/DefaultKeyBinding.dictФайл позволяет определить свои собственные сочетания клавиш в Mac OS X. Это может быть в одном из двух форматов: старый стиль формат NeXT ( пример ) или в современном стиле в формат XML PLIST ( пример ).
Переплет ⌘+⌫
Я хотел перепривязать команду backspace ( ⌘+ ⌫) deleteWordBackward:и получил некоторую помощь в этом потоке AskDifferent . Было предложено использовать это как мой DefaultKeyBinding.dictфайл:
/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}
Этот совет сработал (спасибо, ребята!), Но у меня уже есть работа DefaultKeybinding.dictв формате XML, поэтому я хотел попытаться заставить его работать таким образом. Сначала я добавил только этот текст в нижней части моего существующего файла:
<key>@\U007F</key>
<string>deleteWordBackward:</string>
И я также попытался создать совершенно новый файл в формате XML с помощью только ⌘+ ⌫записи:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>@\U007F</key>
<string>deleteWordBackward:</string>
</dict>
</plist>
Но ни один из файлов не работал. Таким образом, очевидная ситуация заключается в том, что вы можете выполнить повторную привязку ⌘+ ⌫только в старом формате NeXT, а не в формате XML plist. Мои вопросы:
- Это точно, или синтаксис должен измениться, когда я переключаюсь на формат XML?
- Буду ли я сожалеть о переносе остальной части моего
DefaultKeyBinding.dictфайла на старый синтаксис? Это не будет большой работой, это всего лишь одна или две дюжины записей, но я не уверен, что старый стиль устарел или опрометчив по какой-то другой причине.
Изменить: Оригинал DefaultKeyBinding.dict
Кто-то запросил информацию в моем исходном файле в комментариях, поэтому я думаю, что я мог бы также включить все это сюда.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key></key>
<string>complete:</string>
<key>^ </key>
<string>setMark:</string>
<key>^a</key>
<string>moveToBeginningOfLine:</string>
<key>^e</key>
<string>moveToEndOfLine:</string>
<key>^j</key>
<string>setMark:</string>
<key>^v</key>
<string>pageDown:</string>
<key>^w</key>
<string>deleteToMark:</string>
<key>^x</key>
<dict>
<key>^m</key>
<string>selectToMark:</string>
<key>^x</key>
<string>swapWithMark:</string>
</dict>
<key>~</key>
<string>deleteWordBackward:</string>
<key>~<</key>
<string>moveToBeginningOfDocument:</string>
<key>~></key>
<string>moveToEndOfDocument:</string>
<key>~^h</key>
<string>deleteWordBackward:</string>
<key>~b</key>
<string>moveWordBackward:</string>
<key>~d</key>
<string>deleteWordForward:</string>
<key>~f</key>
<string>moveWordForward:</string>
<key>~n</key>
<string>scrollLineDown:</string>
<key>~p</key>
<string>scrollLineUp:</string>
<key>~v</key>
<string>pageUp:</string>
<key>~</key>
<string>deleteWordBackward:</string>
</dict>
</plist>
^для контроля?
~и ^, но нет с $или @. (Примечание: я пошел дальше и добавил свой оригинальный файл DefaultKeyBindings.dict в ОП, а также на тот случай, если это окажется полезным.)
@неприемлемо в стиле XML файла plist. Это не имеет особого смысла, но я не могу найти больше ничего об этом.

~для варианта или$для смены?