Hacer que Mac OS X "Opción-Flecha" funcione como Windows "Ctrl-Flecha"

Confío en el comando " Ctrl- " de Windows para navegar por los documentos de texto.

Esta útil combinación de teclas me llevará rápidamente al comienzo de la siguiente palabra. Por ejemplo, la siguiente secuencia ilustra lo que sucedería con la ubicación del cursor después de presionar sucesivamente Ctrl- (el "^" representará el cursor):

^The quick brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick brown fox ^jumped over the lazy dog
...

Y, si empiezo a presionar el en su lugar, moverá el cursor exactamente a los mismos puntos en el documento, simplemente yendo en la otra dirección (lo cual es ideal porque la posición del cursor es predecible, lo que me lleva a ser más rápido al hacer mi ediciones):

The quick brown fox ^jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Mac OS X tiene un método abreviado de teclado similar ( Option- - Asigné " Ctrl" a " Option" específicamente para poder obtener esta misma funcionalidad de la forma en que me he acostumbrado).

Sin embargo, " Option- Arrow" me lleva al final de la palabra actual cuando uso la tecla de flecha hacia la derecha, como se ilustra aquí:

^The quick brown fox jumped over the lazy dog
The^ quick brown fox jumped over the lazy dog
The quick^ brown fox jumped over the lazy dog
The quick brown^ fox jumped over the lazy dog
The quick brown fox^ jumped over the lazy dog
...

Y, lo que es peor, ir en la otra dirección no te devuelve al mismo lugar que avanzas, te lleva al principio de la última palabra:

The quick brown fox^ jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Esto es extremadamente frustrante para mí, ya que necesito cambiar entre Windows y Mac a menudo, y muy rara vez quiero ir al final de la palabra actual (¿por qué querría eso, a menos que esté presionando " Shift" también? ). Siempre quiero saltar al principio de la siguiente palabra.

Estoy dispuesto a hacer todo lo posible para que la versión para Mac funcione de la misma manera (comprar software, escribir un comando Applescript personalizado vinculado a estos atajos de teclado), así que estoy buscando sugerencias.

¿Hay alguna herramienta existente que cambie esto para mí?

¿Cómo sugerirías "arreglarlo"?

Gracias

EDITAR

Pude hacer un "Servicio" en Automator y usé el siguiente AppleScript:

on run {input, parameters}

    tell application "System Events" to key code 124 using {option down}
    tell application "System Events" to key code 124

end run

Luego vinculé este Servicio a la combinación de teclas " Command- " usando la configuración de "Teclado" en las Preferencias del Sistema.

Sin embargo, para que esto funcione, tengo que quitar el dedo de la Commandtecla... lo que hace que no tenga sentido. También es lento y no parece funcionar en la aplicación en la que más lo necesito (Xcode).

Oye gran pregunta. Como otro usuario de Windows + Mac, podría sugerirle que configure su tecla Comando para que sea Opt, la tecla Opt superior sea Ctrl y la tecla Ctrl para Comando. Encontré que esta es la mejor manera hasta ahora para traer memoria muscular desde Windows. Esp, ya que la tecla alt funciona de la misma manera en muchas aplicaciones y tenerla al lado de la barra espaciadora ayuda mucho. También porque Ctrl ahora estará en la posición de la tecla de Windows y se puede asignar fácilmente a otros accesos directos que imiten los accesos directos de tecla win+. La opción tiene problemas para reasignarse muchas veces.

Respuestas (5)

Así es como puede hacer que ⌃ Controllas teclas de flecha + funcionen como usted describe. Copie la siguiente lista de propiedades en ~/Library/KeyBindings/DefaultKeyBinding.dict(puede crear el directorio si aún no existe):

{
    "^\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "^$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");
}

Esto configurará una ⌃ Controlflecha + para navegar al principio de la siguiente palabra (utilizando la navegación normal de OS X tres veces: al final de la palabra actual, al final de la siguiente palabra y luego de vuelta al principio de la siguiente palabra). También incluí una versión que funciona ⇧ Shiftpara que pueda seleccionar texto sobre la marcha.

Advertencia: esto solo funcionará en las aplicaciones de Cocoa, pero creo que la ⌥ Optionnavegación normal con flechas también lo hace. Además, ¡asegúrate de reiniciar tus aplicaciones!

¡Uau! Justo lo que esperaba... ¡gracias! Déjame intentarlo y luego marco la respuesta.
¡Muchas gracias! Trabajado como un encanto. FYI "Asociaciones de teclas" frente a "Asociaciones de teclas"... Utilicé "Asociaciones de teclas" y funcionó. No estoy seguro si hace una diferencia. Lástima que Xcode anule estos con sus propios enlaces de teclas, menos potentes.
¡Vaya, sí, quise decir KeyBindings! Los Xcode son bastante agradables porque puedes navegar por las subpalabras camelCase.
Me gusta la navegación camelCase. Idealmente, me gustaría el comportamiento de Visual Studio en Xcode... bueno.
Puede, al menos, personalizar Xcode. Hay una pestaña en las Preferencias para cambiar las combinaciones de teclas.
Sí, pero solo puedo usar sus acciones originales... No puedo hacer nada genial como tú cuando puedo asociar varias acciones, encadenadas, a una sola combinación de teclas... a menos que me esté perdiendo algo. (¡Espero que lo sea!)
No, desafortunadamente tienes razón, por lo que puedo decir. Sin embargo, es posible que pueda usar DefaultKeyBindings.dict para configurar más accesos directos para activar algunas de las acciones personalizadas de Xcode ... (es posible que pueda averiguar qué están usando class-dump )

Cosas que podrías intentar. No los he probado para ver si realizarán la función que necesita.

Hay una utilidad gratuita de código abierto para reasignar comandos clave para Mac OS X llamada DoubleCommand . Es una extensión del kernel, por lo que funciona a un nivel muy bajo.

Otro programa gratuito que la gente de DoubleCommand recomienda que consultes es KeyRemap4MacBook . Necesitas usar uno u otro; entrarán en conflicto si ambos están instalados en su Mac.

Usando KeyRemap4MacBook en OS X 10.11.x para hacer que Control + [Flecha] funcione como en Windows, desplácese hacia abajo hasta que encuentre Para usuarios de PC y luego marque (para mí, la opción seis) "Usar control de estilo de PC + Arriba/Abajo/Izquierda/Derecha ". Hay otras opciones muy útiles allí. ¡Definitivamente voté a favor de esta respuesta y además de eso no costó cientos de dólares adicionales!
Esto no responde a la pregunta de OP, pero responde a mi pregunta personal: ¿cómo reasignar accesos directos en MacOS? Es posible que pueda hacer algunas a través de la configuración de MacOS, pero para todo lo demás, recomiendo Karabiner Elements (anteriormente KeyRemap4MacBook)

Después de años de las molestas asignaciones predeterminadas de OSX, cambié mis teclas de Comando y Control y quería que las teclas Control + Flecha proporcionaran la funcionalidad de mover palabra hacia adelante, mover palabra hacia atrás en lugar de BOL / EOL. La respuesta aceptada funcionó para mí, excepto que ^ cambió a @, ya que ahora uso Control en lugar de Comando. También asigné las funciones BOL / EOL menos utilizadas a las combinaciones de teclas Opción + Flecha.

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}

Lo intenté antes, pero desafortunadamente no funcionó para mí. ¿Tal vez lo estoy haciendo incorrectamente? Navegué a mi carpeta Biblioteca, hice una carpeta llamada "KeyBindings" y creé un archivo de edición de texto llamado "DefaultKeyBinding" con el contenido copiado y pegado. También intenté nombrar el archivo "DefaultKeyBinding.dict". Estoy en una Macbook Air M1 con BigSur.

Creo que las sangrías deben ser tabulaciones, no espacios. Es posible que cuando copiaste y pegaras, se insertaron espacios en lugar de tabulaciones.

mejore la respuesta aceptada con la sugerencia de deshabilitar la combinación de teclas utilizada para cambiar espacios. DefaultKeyBinding.dict no hace nada si no ha deshabilitado la opción en "Configuración -> Teclado -> Control de misión -> Mover a la izquierda/derecha un espacio".

Echa un vistazo a esto: https://superuser.com/questions/657724/how-to-remap-ctrlarrow-keys-to-move-word-to-word-for-mac

@omwASAP, ¿quizás esto también te ayude?

Bienvenido a Preguntar Diferente. Alentamos a todos a editar las publicaciones si pueden ayudar a mejorarlas. ¡Gracias por la adición!