DefaultKeyBinding.dict
El ~/Library/KeyBindings/DefaultKeyBinding.dict
archivo le permite definir sus propias asociaciones de teclas en Mac OS X. Puede estar en uno de dos formatos: formato NeXT de estilo antiguo ( ejemplo ) o formato de plist XML de estilo moderno ( ejemplo ).
Rebinding ⌘+⌫
Quería volver a vincular el comando-retroceso ( ⌘+ ⌫) a deleteWordBackward:
, y obtuve algo de ayuda en este hilo AskDifferent . Se sugirió que use esto como mi DefaultKeyBinding.dict
archivo:
/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}
Este consejo funcionó (¡gracias, muchachos!), Pero ya estoy trabajando DefaultKeybinding.dict
en el formato XML, así que quería intentar que funcionara de esa manera. Primero agregué solo este texto cerca del final de mi archivo existente:
<key>@\U007F</key>
<string>deleteWordBackward:</string>
Y también intenté crear un nuevo archivo con formato XML con solo la 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>
Pero ninguno de los archivos funcionó. La situación aparente, entonces, es que puede volver a vincular ⌘+ ⌫solo en el formato NeXT de estilo antiguo, y no en el formato de plist XML. Mis preguntas son:
- ¿Es correcto o la sintaxis debería cambiar de alguna manera cuando cambio al formato XML?
- ¿Me arrepentiré de mover el resto de mi
DefaultKeyBinding.dict
archivo a la sintaxis anterior? No sería mucho trabajo hacerlo, es solo una o dos docenas de entradas, pero no estoy seguro de si el estilo antiguo está en desuso o mal aconsejado por alguna otra razón.
Editar: Original DefaultKeyBinding.dict
Alguien solicitó información sobre mi archivo original en los comentarios, por lo que creo que también podría incluir todo aquí.
<?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>
~
para la opción o$
para el turno?^
para el control?~
y^
, pero ninguna con$
o@
. (Nota: seguí adelante y agregué mi archivo original DefaultKeyBindings.dict al OP también en caso de que resulte útil).@
no se acepte en el estilo XML del archivo plist. No tiene mucho sentido, pero no puedo encontrar nada más al respecto.Respuestas:
No creo que tenga ningún problema al usar el formato anterior. Todos los ejemplos que he encontrado usan la antigua notación NeXT. Aunque no puedo explicar por qué el formato XML no funcionó, existe una solución alternativa para este método abreviado de teclado en particular, lo que significaría que puede dejar
DefaultKeyBinding.dict
intacto el existente .Hay una aplicación llamada KeyRemap4MacBook que se puede descargar gratis y puede ver en la captura de pantalla a continuación, puede reasignar el atajo de teclado ⌘+ ⌫sin convertir el resto de su
DefaultKeyBinding.dict
archivo y este método no se limita a las aplicaciones de Cocoa.fuente
\U007f
no se puede usar en listas de propiedades XML. Tendría que reemplazarlo con
o con unDEL
carácter literal .Puede convertir un plist de estilo antiguo a XML con
plutil
:Y de XML a estilo antiguo con
pl
:Mi DefaultKeyBinding.dict es actualmente 151 líneas, y no he tenido ningún problema al almacenarlo como una lista de propiedades de estilo antiguo. Los publicados por Brett Terpstra y Jacob Rus también están en el formato antiguo.
fuente