DefaultKeyBinding.dict
O ~/Library/KeyBindings/DefaultKeyBinding.dict
arquivo permite definir suas próprias associações de teclas no Mac OS X. Ele pode estar em um de dois formatos: formato NeXT à moda antiga ( exemplo ) ou formato XML plist à moda moderna ( exemplo ).
Rebinding ⌘+⌫
Eu queria religar o comando backspace ( ⌘+ ⌫) para deleteWordBackward:
e obtive alguma ajuda nesse segmento do AskDifferent . Foi sugerido que eu use isso como meu DefaultKeyBinding.dict
arquivo:
/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}
Esse conselho funcionou (obrigado, pessoal!), Mas eu já tenho um trabalho DefaultKeybinding.dict
no formato XML, então eu queria tentar fazê-lo funcionar dessa maneira. Adicionei apenas este texto próximo à parte inferior do meu arquivo existente:
<key>@\U007F</key>
<string>deleteWordBackward:</string>
E também tentei criar um novo arquivo formatado em XML com apenas a entrada ⌘+ ⌫:
<?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>
Mas nenhum dos arquivos funcionou. A situação aparente, então, é que você pode religar ⌘+ ⌫apenas no formato NeXT à moda antiga, e não no formato XML plist. Minhas perguntas são:
- Isso é preciso ou a sintaxe deve mudar de alguma forma quando eu estou mudando para o formato XML?
- Vou me arrepender de mudar o restante do meu
DefaultKeyBinding.dict
arquivo para a sintaxe antiga? Não seria muito trabalhoso fazê-lo - são apenas uma ou duas dúzias de entradas - mas não tenho certeza se o estilo antigo foi descontinuado ou desaconselhado por algum outro motivo.
Editar: Original DefaultKeyBinding.dict
Alguém solicitou informações no meu arquivo original nos comentários, então acho que é melhor incluir a coisa toda aqui.
<?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>
^
pelo controle?
~
e ^
, mas nenhuma com $
ou @
. (Nota: eu fui em frente e acrescentou meu arquivo DefaultKeyBindings.dict original para o OP, bem como no caso em que acaba por ser útil.)
@
não é aceita no estilo XML do arquivo plist. Não faz muito sentido, mas não consigo encontrar mais nada sobre isso.
~
para opção ou$
para turno?