OSX: modificar la selección de texto con ⌘⇧→ y ⌘⇧←

Seleccioné un texto usando mi teclado, comenzando en la línea inferior y subiendo (el carácter | indica la posición del cursor):

AAA |{BBB CCC

DDD} EEE FFF

crear selección


Ahora, me gustaría cambiar la selección para que comience al final de la primera línea , es decir, para que se vea así:

Resultado Esperado:

AAA BBB CCC |{

DDD} EEE FFF


Puedo reducir la selección palabra por palabra con :

manipular la selección con opción-cambio-flechas


Pero la forma natural de hacerlo sería mediante , para saltar directamente al final de la primera línea. En muchos editores de texto decentes esto funciona bien (por ejemplo, Sublime Text 2). También mantienen la |posición visible cuando se selecciona texto por cierto.

Sin embargo, el comportamiento predeterminado de las aplicaciones OSX es que ignoran el hecho de que el cursor se encuentra actualmente al comienzo de la selección, y moverlo hacia la derecha debería eliminar la selección allí. En cambio, siempre extiende la selección desde su final hasta el final de la línea, sin importar dónde se encuentre actualmente el cursor:

Resultado actual:

AAA {BBB CCC

DDD EEE FFF}|

manipular la selección con comando-shift-flechas


¿Hay alguna forma de hacer que las aplicaciones nativas de OSX también se comporten de la manera esperada?

Estoy en OSX Yosemite 10.10.2, pero creo que este problema ha existido desde que tengo memoria.

Puedo reproducir esto en 10.10.1, ¿tal vez se solucionó en la versión beta?
Estoy en Yosemite 10.10.2 (también lo agrego a la pregunta ahora). Pero creo que siempre ha sido así. Principalmente uso editores de código con buenas capacidades de edición de texto, pero me encantaría encontrar una solución a nivel de sistema operativo para esto.
También actualicé la pregunta con algunos gifs animados para que sea más fácil entender cuál es el problema.
Eche un vistazo a este documento de soporte de Apple que establece que cmd+shift+flecha derecha select text between the insertion point and the end of the current line. La única línea en su ejemplo, donde la selección aún no incluye el final de la línea , es la última línea. Entonces, el comportamiento esperado en OS X es extender la selección desde allí, ¡no acortarla en la línea de inicio! Sé que algunos editores se comportan de manera diferente, ¡pero lo están haciendo mal , no el sistema!
@Asmus Gracias por el enlace. El comportamiento predeterminado de OSX se adhiere a lo que está documentado en esa página, por lo que técnicamente es el correcto. Sin embargo, mi pregunta sigue en pie: ¿es posible cambiarlo globalmente, para que se comporte como lo hace en editores más avanzados (y en Linux y Windows para el caso)?
@Asmus Hay un pequeño asterisco después de la descripción de ese (y muchos otros) atajos de teclado, pero no hay explicación para ello. ¿Alguna idea de lo que (*)significa?
No tengo idea de lo que (*)significa, pero probablemente sea un remanente de versiones anteriores de la documentación. Actualicé mi respuesta ligeramente para incluir la opción de combinación de teclas global que conozco, pero desafortunadamente estoy bastante seguro de que no hay forma de lograr lo que está buscando. Dado que el comportamiento no está integrado, las aplicaciones no sabrían cómo manejarlo incluso si pudiera activarlo.
Gracias, @Asmus. He votado tu respuesta. Esperaré un poco antes de aceptarlo por si a alguien se le ocurre alguna solución ingeniosa.
Esto me hace tropezar cada vez, también. Ignorar la posición implícita del cursor es muy contrario a la intuición. Mi solución es usar ⌥ + ⇧ junto con las teclas de flecha, lo que se comporta como se esperaba y al menos es un poco más rápido que ir carácter por carácter.

Respuestas (2)

Mac no usa la posición del cursor si tiene una selección de texto múltiple, considera que el cursor está en 'todo el texto seleccionado'.

Puede ver esto demostrado si usa Cmd ⌘ Shift ⇧ en lugar de
Agregar a la selección con Shift ⇧ incluye la selección anterior.

No es una solución, pero podría ser una solución alternativa que movería el cursor al final de su selección actual, deseleccionándola simultáneamente y luego Cmd ⌘ Shift ⇧ seleccionando al comienzo de la línea.

¿Qué significa esto? "Una selección de texto múltiple".

Entonces, tal como yo lo veo, la navegación de texto en OS X funciona (y se espera que funcione) así:

  1. Navegue por línea (o documento, es decir, grandes cantidades de datos):

    cmd+teclas de flecha: se mueve por líneas (izquierda/derecha para líneas, arriba/abajo para todo el documento). Mantenga presionado shiftpara seleccionar

  2. Navegar por palabra (es decir, pequeños fragmentos de datos):

    alt+teclas de flecha: se mueve por palabra (izquierda/derecha). Mantén pulsado shiftpara seleccionar.

Entonces, para lograr su "resultado esperado", primero debe presionar la flecha derecha para llegar al final de su selección actual y luego ++ cmdpara seleccionar la línea que conduce a ella.shift

Cuando ya tienes una selección:

  1. el uso de la altcombinación de teclas anterior aumentará/disminuirá la selección en función de la dirección (siempre modificando el punto final de su selección anterior, suponiendo que se haya perdido un poco el punto final ). Lo mismo ocurre con la adición de caracteres individuales solo con las teclas shift+flecha.
  2. el combo aumenta en ambas direcciones, suponiendo que de todos modos cmdbuscas seleccionar grandes fragmentos de texto .

Actualizar

Para resumir: lo que quieres no es realmente posible. Si observa la lista de combinaciones de teclas del sistema disponibles ejecutando

plutil -convert xml1 /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict -o -|pl|grep -v noop:|ruby -pe '$_.gsub!(/[^ -~\n]/)' | grep -i selection

Verá que aunque puede vincular teclas personalizadas a todas las funciones de selección, ~/Library/KeyBindings/DefaultKeyBinding.dictno existe tal función que logre el comportamiento solicitado (ya que este comportamiento no está integrado en el sistema).

Creo que Apple Up y Apple Down van al principio y al final del documento, y no navegan por página.
@NicolasBarbulesco tienes toda la razón, había escrito "documento" solo una línea antes, no sé por qué escribí "páginas" a continuación. Arreglado ahora.