DefaultKeyBinding.dict
~/Library/KeyBindings/DefaultKeyBinding.dict
Plik pozwala zdefiniować własne skróty klawiszowe w systemie Mac OS X. To może być w jednym z dwóch formatów: w starym stylu formacie next ( przykład ) lub nowoczesny styl formacie XML plist ( przykład ).
Ponowne wiązanie ⌘+⌫
Chciałem ponownie przypisać komendę backspace ( ⌘+ ⌫) deleteWordBackward:
i uzyskałem pomoc w tym wątku AskDifferent . Zasugerowano, żebym użył tego jako mojego DefaultKeyBinding.dict
pliku:
/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}
Ta rada zadziałała (dzięki, chłopaki!), Ale mam już pracę DefaultKeybinding.dict
w formacie XML, więc chciałem spróbować, aby działała w ten sposób. Najpierw dodałem tylko ten tekst u dołu mojego istniejącego pliku:
<key>@\U007F</key>
<string>deleteWordBackward:</string>
Próbowałem też utworzyć nowy plik w formacie XML z samym wpisem ⌘+ ⌫:
<?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>
Ale żadne pliki nie działały. Widoczna sytuacja polega zatem na tym, że można ponownie powiązać ⌘+ ⌫tylko w starym formacie NeXT, a nie w formacie XML plist. Moje pytania to:
- Czy to jest dokładne, czy też powinna zmienić się jakoś składnia, kiedy przechodzę do formatu XML?
- Czy będę żałować przeniesienia reszty mojego
DefaultKeyBinding.dict
pliku do starej składni? Nie byłoby to dużo pracy - to tylko jeden lub dwa tuziny wpisów - ale nie jestem pewien, czy stary styl jest przestarzały lub źle doradzany z innego powodu.
Edycja: Oryginalny DefaultKeyBinding.dict
Ktoś poprosił o informacje na temat mojego oryginalnego pliku w komentarzach, więc sądzę, że równie dobrze mogę tutaj zamieścić całość.
<?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>
^
do kontroli?
~
i ^
, ale żadnych z $
lub @
. (Uwaga: poszedłem naprzód i dodałem mój oryginalny plik DefaultKeyBindings.dict również do OP, na wypadek, gdyby okazało się to przydatne.)
@
jest niedopuszczalne w stylu pliku plist w formacie XML. To nie ma większego sensu, ale nie mogę nic więcej na ten temat znaleźć.
~
opcji lub$
zmiany?