DefaultKeyBinding.dict: formatting NeXT de estilo antiguo versus formatting plist XML

DefaultKeyBinding.dict

El file ~/Library/KeyBindings/DefaultKeyBinding.dict permite definir sus propios enlaces de teclas en Mac OS X. Puede estar en uno de dos formattings: formatting NeXT de estilo antiguo ( ejemplo ) o formatting plist XML de estilo moderno ( ejemplo ) .

Reenlace +

Quería volver a enlazar command-backspace ( + ) para deleteWordBackward: y obtuve algo de ayuda en este hilo de AskDifferent . Se sugirió que use esto como mi file DefaultKeyBinding.dict :

  • Atajo de keyboard de aplicación personalizada para Safari que no siempre funciona
  • ¿Cómo reasignar una key en macOS Sierra, por ejemplo, Alt derecha a control derecho?
  • ¿Cambia el lenguaje de text pnetworkingictivo independientemente del keyboard?
  • pulsaciones de teclas desfasadas / fuera de service
  • Cómo volver a remapear la tecla 'Menú contextual' en el keyboard externo?
  • Parallels: ¿Puedo tener un atajo de keyboard para la tecla del menu contextual que se encuentra en el hardware de Wintel?
  •  /* my keybindings */ { "@\U007F" = "deleteWordBackward:"; /* delete backwards one word */ } 

    Este consejo funcionó (¡gracias, chicos!), Pero ya tengo un DefaultKeybinding.dict en el formatting XML, así que quería intentar que funcionara de esa manera. Primero agregué solo este text cerca de la parte inferior de mi file existente:

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

    Y también intenté crear un nuevo file con formatting XML con solo la input + :

     <?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 files funcionó. La situación aparente, entonces, es que puede volver a enlazar + solo en el formatting NeXT antiguo, y no en el formatting XML plist. Mis preguntas son:

    1. ¿Es esto exacto o debería cambiar la syntax de alguna manera cuando estoy cambiando al formatting XML?
    2. ¿ DefaultKeyBinding.dict mover el rest de mi file DefaultKeyBinding.dict a la syntax anterior? No sería mucho trabajo hacerlo, es solo una o dos docenas de inputs, pero no estoy seguro de si el viejo estilo está obsoleto o desaconsejado por algún otro motivo.

    Editar: Original DefaultKeyBinding.dict

    Alguien pidió información sobre mi file original en los comentarios, por lo que creo que podría include 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>~&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> 

  • Deshabilitar Command-W en la terminal
  • ¿Puedo canalizar la salida de un command al cursor actual?
  • Remapear Control + Comando + F desde Facebook a pantalla completa
  • ¿Cuál es el order de los cables USB en el conector macho del Apple Keyboard con n. Teclado?
  • ¿Qué tan eficientes son los dispositivos bluetooth de Apple?
  • Función de limpieza de escritorio - Control, Comando 1 - no funciona después de que instalé Lion? Otros atajos de keyboard están funcionando, por lo que puedo decir
  • 2 Solutions collect form web for “DefaultKeyBinding.dict: formatting NeXT de estilo antiguo versus formatting plist XML”

    No creo que tenga problemas al usar el formatting anterior. Todos los ejemplos que he encontrado usan la vieja notación NeXT. Aunque no puedo explicar por qué el formatting XML no funcionó, hay una solución alternativa para este atajo de keyboard en particular, lo que significa que puede dejar intacto su DefaultKeyBinding.dict existente.

    Existe una aplicación llamada KeyRemap4MacBook que se puede download gratis y se puede ver en la siguiente captura de pantalla, puede reasignar el atajo de keyboard + sin convertir el rest de su file DefaultKeyBinding.dict y este método no está limitado a las aplicaciones Cocoa.

    KeyRemap4MacBook

    \U007f no se puede usar en lists de properties XML. &#x007f; replacelo por &#x007f; o un personaje DEL literal


    Puede convertir un plist antiguo en XML con plutil :

     plutil -convert xml1 test.plist 

    Y de XML a viejo estilo con pl :

     pl -input test.plist 

    Mi DefaultKeyBinding.dict es actualmente 151 líneas, y no he encontrado ningún problema al almacenarlo como una list de properties de estilo antiguo. Los publicados por Brett Terpstra y Jacob Rus también están en el formatting de estilo antiguo.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).