Métodos abreviados de teclado de selección camelCase de Mimic Xcode en OS X

Paso una gran cantidad de tiempo editando texto en Xcode, y me gustaría maniobrar alrededor del texto dentro del resto del Cocoa Text System para ofrecer una experiencia idéntica. Hay 3 versiones de atajos de teclado de cursor que uso regularmente en Xcode (solo se muestran versiones hacia adelante, que no modifican la selección por brevedad):

  1. + Mover el cursor 1 subpalabra hacia adelante (^camelCase -> camel^Case -> camelCase^)
  2. ⌥ Option+ Mover el cursor 1 palabra hacia adelante
  3. ⌘ Command+ Mueve el cursor al final de la línea

Las combinaciones de teclas predeterminadas de OS X respetan 2 y 3, pero hay una disparidad con 1. Fuera de Xcode, + se comporta como ⌘ Command+ . No se aplica muy a menudo, pero cada vez que + me lleva al final de una línea en Mail o algo así, es como si un pequeño petardo explotara en mi cerebro. Es lo suficientemente molesto que estoy dispuesto a invertir en cualquier piratería para "arreglar" el comportamiento de una vez por todas.

Para evitar cubrir temas antiguos, ya conozco este pequeño dato y esta lista de selectores , pero no conozco ninguna API en el Cocoa Text System para la selección de subpalabras. ¿Tal vez hay una API no documentada en alguna parte?


No siempre intento hacer selecciones de camelCase fuera de Xcode con atajos de teclado, pero cuando lo hago, quiero que OS X obedezca.

En mi mac ⌃→ cambia espacios por defecto, y no se comporta como ⌘→
Esto supone que ha deshabilitado ese acceso directo en las Preferencias del Sistema.
No. En OS X (Mavericks), el comportamiento predeterminado de ⌃→ es cambiar espacios. osxdaily.com/2011/09/06/…
Lo quiero también. Creo que puede haber una herramienta externa como PuntoSwitcher de Yandex para manipular el cursor de entrada en cualquier cuadro de texto.

Respuestas (2)

Lo siento, pero lo que quieres no es posible.

Puede intentar agregar las combinaciones de teclas XCode que hacen esto

"^\UF702" = "moveSubWordBackward:";                     /* Ctl-Left Arrow */
"^$\UF702" = "moveSubWordBackwardAndModifySelection:";  /* Ctl-Shift-Left Arrow */
"^\UF703" = "moveSubWordForward:";                      /* Ctl-Right Arrow */
"^$\UF703" = "moveSubWordForwardAndModifySelection:";   /* Ctl-Shift-Right Arrow */
"^\177" = "deleteSubWordBackward:";                     /* ctl-delete */
"^\UF728" = "deleteSubWordForward:";                    /* ctl-forwardDelete */

en su ~/Library/KeyBindings/DefaultKeyBindings.dictarchivo, pero a menos que la aplicación esté escrita para responder a estos métodos, no funcionará. Como ha dicho, estos métodos no son parte del sistema de texto estándar, por lo que estas llamadas en una aplicación simplemente no serán respondidas o escuchará un pitido del sistema.

Para navegar por el caso de camello (también conocido como subpalabras) al uso correcto

^+ [para mover una subpalabra a la izquierda

^+ ]para mover una subpalabra a la derecha

Confirmé esto en OSX 10.10.1 ejecutando Xcode 6.1.1.

Creo que la esencia de esta pregunta es obtener los comandos de subpalabras de Xcode fuera de esa aplicación y en el resto de las aplicaciones estándar.
@bmike, tal vez lo sea. Si es así, uno probablemente tendría que codificar esto porque la función es inherente a Xcode y no al sistema operativo. Pero uno esperaría que un usuario de Xcode lo supiera.