¿Cómo selecciono una línea en OSX?

8

Estoy editando texto. Una forma engorrosa de seleccionar una línea sería ir al principio de la línea (cmd <-) y luego seleccionar toda la línea hasta el final (Shift cmd ->). ¿Puedo hacerlo mejor?

También serían bienvenidos los atajos para cortar la línea y almacenarla en un búfer. (cmd D) no almacena la línea en un búfer.

Dávid Natingga
fuente
1
¿En qué programa estás editando texto?
ForeverWintr
Principalmente en Eclipse en la terminal, pero esperaba obtener una solución general para cada aplicación si es posible.
Dávid Natingga
en un teclado completo en os x home, luego shift-end seleccionará toda la línea, pero probablemente no tenga un teclado completo. También en la mayoría de las aplicaciones, coloca el cursor al comienzo de la línea y luego mantiene presionada la tecla Mayús presionando la flecha hacia abajo.
sdjuan

Respuestas:

10

Siempre uso lo siguiente:

  • cmd - Left arrow para llegar al comienzo de la línea
  • shift + cmd + right arrow para marcar la línea
  • cmd - C(o cmd - X) para copiar (o cortar) la línea marcada en el portapapeles

Entonces puedo ir a donde quiera y pegar la línea cmd - v.

Pero como MacOS está fuertemente fijado a una interfaz gráfica de usuario, es posible usarlo sin mouse, pero a veces, como en su caso, implica presionar una tecla más de lo que a uno le gustaría.

Heiglandreas
fuente
1
Casi a la derecha: shift + cmd - flecha derecha para marcar la línea, NO shift + cmd - flecha hacia abajo.
Kevin Le - Khnle
1
shift + cmd + flecha hacia abajo marca la línea actual, incluyendo el carácter de nueva línea, shift + cmd + flecha hacia la derecha marca la línea excluyendo el carácter de nueva línea. Así que ambos tenemos razón;)
heiglandreas
5

La mayoría de las aplicaciones (Terminal, TextEdit, URL / barra de búsqueda de Safari, etc.) que aceptan entrada de texto cumplen con las asignaciones de teclas estándar (¿no estás seguro de qué estándar ... ANSI, ASCII?) Que incluyen

control+ a: comienzo de línea

control+ e: fin de línea

Entonces, control+ shift+ a or epara seleccionar una línea dependiendo de su posición.

También:

control+ shift+ k: matar al final de la línea

control+ shift+ y: tirar (desde el búfer)

Se puede generar una lista completa con el bindkeycomando en Terminal, aunque no todos funcionan en todas las aplicaciones.

Nevin Williams
fuente
1
Las vistas de texto de OS X no usan readline, solo son compatibles con muchas de las mismas combinaciones de teclas que readline en modo emacs. Cu, C- @ y Cw no deberían funcionar en las vistas de texto estándar de forma predeterminada, aunque puede definirlas en DefaultKeyBinding.dict.
Lri
Probé todo, antes de publicar ... excepto que lo hice en un símbolo del sistema. doh
Nevin Williams
Esto es bueno, pero todavía estoy buscando algo que funcione a nivel mundial.
Louis Waweru
2

Puede crear ~/Library/KeyBindings/y guardar una lista de propiedades como esta como DefaultKeyBinding.dict:

{
    "~l" = selectParagraph:;
    "~z" = (selectParagraph:, delete:);
    "~x" = (selectParagraph:, cut:);
    "~c" = (selectParagraph:, copy:);
}

Después de volver a abrir las aplicaciones, por ejemplo, ⌥L debería seleccionar una línea en la mayoría de las vistas de texto nativo. Sin embargo, no funciona en Eclipse, Terminal o Xcode. Para obtener más información, consulte el artículo del Sistema de texto Cocoa o mi sitio web .

Otra opción es usar KeyRemap4MacBook y guardar algo como esto como private.xml :

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>test</identifier>
<not>TERMINAL</not>
<not>EMACS</not>
<not>VIRTUALMACHINE</not>
<not>ECLIPSE</not>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::A, ModifierFlag::CONTROL_L, KeyCode::E, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
<item>
<name>test2</name>
<identifier>test2</identifier>
<only>ECLIPSE</only>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

En la mayoría de las aplicaciones, ⌃A se mueve al comienzo de una línea sin envolver y ⌘ ← se mueve al comienzo de una línea envuelta, pero ⌃A no parece funcionar en Eclipse.

Consulte la fuente para conocer los valores de los códigos clave y las configuraciones predefinidas .

Lri
fuente
1

Encontré una solución que parece estar funcionando en todas las aplicaciones de Cocoa: haga que las teclas home& se endcomporten como máquinas que no son de Apple (vaya al principio / al final de una línea en lugar de un documento completo).

Un archivo ~/Library/KeyBindings/DefaultKeyBinding.dictdebe contener lo siguiente:

{
    /* home */
    "\UF729"  = "moveToBeginningOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";

    /* end */
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

Si el archivo o directorio no existe, copie el fragmento de código anterior en su ... tablero, abra Terminal e ingrese estos dos comandos:

mkdir ~/Library/KeyBindings
pbpaste > ~/Library/KeyBindings/DefaultKeyBinding.dict

Es posible que sea necesario reiniciar la aplicación para que se comporte como se esperaba.

Louis Waweru
fuente
1

Me sorprende que nadie haya mencionado este

Shift + CMD + flecha izquierda (o flecha derecha si está al principio)

Sharadh Deshpande
fuente
No, @heiglandreas lo mencionó (no explícitamente, pero lo hizo) en su respuesta. Ver la segunda bala.
C0deDaedalus
1

Una de las ventajas de macOS sobre (WIN / Linux) es la combinación de teclas de estilo global de emacs en casi todos los cuadros de texto (una excepción es Microsoft Office para Mac que redefine esas combinaciones de teclas de forma molesta ...)

Con respecto a esta pregunta, siempre uso C-apara llegar C-S-eal comienzo de la línea, para seleccionar hasta el final de la línea, luego 'CMD-c` para copiar.

Si tiene una línea (que termina con un \ n) que cruza muchas líneas literales, normalmente haría lo siguiente:

1) C-air al inicio de la línea

2) C-nir al inicio de la siguiente línea literal

3) C-bpara retroceder un personaje

4) C-S-apara seleccionar hasta el inicio de la línea

5) CMD-ccopiar el contenido

Puede ser una solución compleja, pero debería funcionar en la mayoría de los cuadros de texto en macOS.

phye
fuente
0

control+ shift+aef

(escriba aef mientras mantiene Control y Shift)

Esto da el mismo resultado que hacer triple clic en la línea actual.

Tenga en cuenta que esto incluye la EOL final en la selección. Si eso no es lo que quieres, deja de lado la f .

Como beneficio adicional, después de f , presione n repetidamente para seleccionar varias líneas.

Probado en Xcode y TextEdit.

jedwidz
fuente