DefaultKeyBinding.dict
Цей ~/Library/KeyBindings/DefaultKeyBinding.dict
файл дозволяє визначити власні прив’язки ключів у Mac OS X. Він може бути в одному з двох форматів: старий стиль NeXT-формат ( приклад ) або сучасний формат XML-плістів ( приклад ).
Rebinding ⌘+⌫
Мені хотілося відновити командний простір ( ⌘+ ⌫) на 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-списку. Мої запитання:
- Це точно, чи повинен синтаксис якось змінюватися при переході у формат 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-стилі файлу плістів. Це не має особливого сенсу, але я нічого не можу знайти про це.
~
варіант або$
для зміни?