DefaultKeyBinding.dict
Il ~/Library/KeyBindings/DefaultKeyBinding.dict
file ti consente di definire le tue combinazioni di tasti in Mac OS X. Può essere in due formati: formato NeXT vecchio stile ( esempio ) o formato plist XML moderno ( esempio ).
Rilegatura ⌘+⌫
Volevo ricollegare command-backspace ( ⌘+ ⌫) a deleteWordBackward:
, e ho ottenuto un aiuto in questo thread AskDifferent . Mi è stato suggerito di utilizzare questo come mio DefaultKeyBinding.dict
file:
/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}
Questo consiglio ha funzionato (grazie, ragazzi!), Ma ho già un lavoro DefaultKeybinding.dict
in formato XML, quindi volevo provare a farlo funzionare in quel modo. Ho prima aggiunto solo questo testo nella parte inferiore del mio file esistente:
<key>@\U007F</key>
<string>deleteWordBackward:</string>
E ho anche provato a creare un nuovissimo file in formato XML con solo la voce ⌘+ ⌫:
<?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>
Ma nessuno dei due file ha funzionato. La situazione apparente, quindi, è che puoi ricollegare ⌘+ ⌫solo nel formato NeXT vecchio stile e non nel formato plist XML. Le mie domande sono:
- È accurato o la sintassi dovrebbe cambiare in qualche modo quando sto passando al formato XML?
- Mi pentirò di aver spostato il resto del mio
DefaultKeyBinding.dict
file nella vecchia sintassi? Non sarebbe molto difficile farlo - sono solo una o due dozzine di voci - ma non sono sicuro che il vecchio stile sia deprecato o sconsigliato per qualche altro motivo.
Modifica: DefaultKeyBinding.dict originale
Qualcuno ha richiesto informazioni sul mio file originale nei commenti, quindi immagino che potrei anche includere tutto qui.
<?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>
^
per controllo?
~
e ^
, ma nessuna con $
o @
. (Nota: sono andato avanti e ho aggiunto il mio file DefaultKeyBindings.dict originale all'OP anche nel caso risultasse utile.)
@
non è accettato nello stile XML del file plist. Non ha molto senso, ma non riesco a trovare altro al riguardo.
~
per l'opzione o$
per il turno?