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>
~
opcji lub$
zmiany?^
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źć.Odpowiedzi:
Nie sądzę, abyś miał problemy z używaniem starszego formatu. Wszystkie znalezione przykłady używają starej notacji NeXT. Chociaż nie potrafię wyjaśnić, dlaczego format XML nie działał, istnieje sposób obejścia tego konkretnego skrótu klawiaturowego, co oznacza, że możesz pozostawić swój istniejący
DefaultKeyBinding.dict
nietknięty.Istnieje aplikacja o nazwie KeyRemap4MacBook, którą można pobrać bezpłatnie i na poniższym zrzucie ekranu możesz mapować skrót klawiaturowy ⌘+ ⌫bez konwertowania pozostałej części
DefaultKeyBinding.dict
pliku, a ta metoda nie ogranicza się do aplikacji Cocoa.źródło
\U007f
nie można go używać na listach właściwości XML. Trzeba go zastąpić literą
lub dosłownieDEL
.Możesz przekonwertować plist w starym stylu na XML za pomocą
plutil
:I od XML do starego stylu dzięki
pl
:Mój plik DefaultKeyBinding.dict ma obecnie 151 linii i nie napotkałem żadnych problemów z przechowywaniem go jako listy właściwości w starym stylu. Te opublikowane przez Bretta Terpstrę i Jacoba Rusa są również w starym stylu.
źródło