9 votos

DefaultKeyBinding.dict - estilo antiguo Siguiente formato vs XML formato plist

DefaultKeyBinding.dict

El ~/Library/KeyBindings/DefaultKeyBinding.dict archivo le permite definir sus propios atajos de teclado en Mac OS X. Se puede estar en uno de dos formatos: de estilo antiguo Siguiente formato (ejemplo) o moderno, de estilo XML formato plist (ejemplo).

Reenlace +

Yo quería volver a enlazar los comandos de retroceso (+) a deleteWordBackward:, y tengo algo de ayuda en este AskDifferent hilo. Se sugirió que yo uso esto como mi DefaultKeyBinding.dict archivo:

/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}  

Este consejo trabajado (gracias, chicos!), pero ya tengo un trabajo DefaultKeybinding.dict en el formato XML, por lo que yo quería tratar de conseguir que funcione de esa manera. Primero me agrega solo este texto cerca de la parte inferior de mi archivo existente:

<key>@\U007F</key>
<string>deleteWordBackward:</string>

Y también he intentado crear un nuevo archivo con formato XML con sólo el + 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 trabajado. La aparente situación, entonces, es que se puede volver a enlazar + sólo en el estilo antiguo Siguiente formato, y no en el XML de formato plist. Mis preguntas son:

  1. Es esto correcto, o si el cambio de sintaxis de alguna manera cuando me voy a cambiar a formato XML?
  2. Me arrepiento de mover el resto de mi DefaultKeyBinding.dict archivo a la sintaxis antigua? No sería mucho trabajo para hacerlo - es sólo una o dos docenas de entradas - pero no estoy seguro de si el viejo estilo está en desuso o mal aconsejado por algún otro motivo.

Edición: Original DefaultKeyBinding.dict

Alguien solicitó información sobre mi archivo original en los comentarios, así que me imagino que bien podría incluir la totalidad de la cosa 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>~&lt;</key>
    <string>moveToBeginningOfDocument:</string>
    <key>~&gt;</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>

3voto

Petros Puntos 4430

Creo que no tendrás ningún problemas con el formato anterior. En todos los ejemplos que he encontrado usando el antiguo Siguiente notación. Aunque no puedo explicar por qué el formato XML no funciona, hay una solución para este particular método abreviado de teclado que significaría que usted puede dejar su actual DefaultKeyBinding.dict virgen.

Hay una aplicación llamada KeyRemap4MacBook que es de descarga gratuita y se puede ver en la siguiente captura de pantalla, puede reasignar la tecla⌘+ método abreviado de teclado sin necesidad de convertir el resto de su DefaultKeyBinding.dict archivo y este método no está limitado a las aplicaciones Cocoa.

KeyRemap4MacBook

3voto

\U007f no puede ser utilizado en XML de las listas de propiedades. Tendría que reemplazarlo con &#x007f; o un literal DEL carácter.


Usted puede convertir un viejo estilo plist para XML con plutil:

plutil -convert xml1 test.plist

Y a partir de XML al estilo antiguo, con pl:

pl -input test.plist

Mi DefaultKeyBinding.dict es actualmente 151 líneas, y no he corrido en cualquier problema de guardarla como un viejo estilo de la lista de propiedades. Los publicados por Brett Terpstra y Jacob Rus están en el viejo estilo de formato.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X