¿Se pueden asignar las teclas de inicio y final cuando se usa Terminal?

66

Las teclas home y end en una MacBook Pro se pueden emular con fn + flecha izquierda o fn + flecha derecha. O cuando se cambian ciertos ajustes, con la tecla Comando (Apple) en lugar de fn.

Ninguno de estos trabajos en la Terminal.

Como con frecuencia necesito ir al principio o al final de la línea y también me gustaría saltar hacia adelante o hacia atrás por palabra.

¿Cómo puedo saltar en una línea en la Terminal?

    
pregunta at01 27.04.2011 - 23:30

11 respuestas

60

Use control + a para INICIO y control + e para FIN en la Terminal.

También use esc + f para pasar al principio de la palabra next y esc + b para ir al principio de la palabra actual . (Debes tener cuidado con el actual y el siguiente)

    
respondido por el Am1rr3zA 27.04.2011 - 23:33
58

Para responder a la pregunta sobre cómo obtener el principio o el final de la línea, parece que, de manera predeterminada, el Terminal le asigna estas claves:

  • shift + home → comienzo de línea, equivalente a la tecla "home" en terminales normales
  • shift + end → final de línea, equivalente a la tecla "end" en los terminales normales

Si desea que el inicio y el final funcionen de la manera "normal" (y no requiere turno), vaya a [Menú terminal] → Preferencias → pestaña Perfiles (o configuraciones en algunas versiones de OS X) → subpestaña Teclado.

Luego modifique / agregue estas claves para que sean las siguientes "enviar cadena a shell"

  • inicio: 3[H
  • final: 3[F

Puedes obtener la parte 3 presionando la tecla de escape dentro de la entrada del diálogo de edición, si necesitas agregarla.

Luego, el inicio y el final funcionarán como normales otra vez (phew).

También tenga en cuenta que "alt + ←" y "alt + →" por defecto en el mapa del terminal a la palabra a la izquierda y la palabra a la derecha, otro combo útil para recordar.

En versiones posteriores de Mac OS X, si la pantalla del terminal se desplaza hacia arriba o hacia abajo al presionar la tecla de inicio / finalización, es posible que la tecla de inicio deba configurarse en 3[1~ y la tecla de finalización en 3[4~ para obtener los resultados que desea (no es necesario ningún cambio).

No dude en modificar esta respuesta para agregar enlaces de teclas más útiles, ya que es un wiki de la comunidad.

    
respondido por el rogerdpack 02.08.2017 - 18:33
39

Parece que estás buscando ayuda usando readline y bash, aquí hay una lista de cosas de teclado modificadas desde: enlace

Ctrl a Mueve al principio de la línea.
Ctrl e Mueve al final de la línea.
Esc f Mueve una palabra hacia adelante.
Esc b Mueve hacia atrás a word.
Ctrl l Borre la pantalla, reimprimiendo la línea actual en la parte superior.

Ctrl k Mata el texto desde la posición actual del cursor hasta el final de la línea.
Esc d Mata desde el cursor hasta el final de la palabra actual , o si entre palabras, al final de la siguiente palabra.
Esc Del Mata desde el cursor el comienzo de la palabra anterior, o si está entre palabras, hasta el comienzo de la palabra anterior.
Ctrl w Mata desde el cursor hasta el espacio en blanco anterior. Esto es diferente de EscDelCtrl a porque los límites de las palabras difieren.

Ctrl d Borra el carácter debajo del cursor.
Ctrl _ Deshacer lo último que hiciste. Puedes deshacer todo el camino de vuelta a una línea vacía.

Y aquí es cómo tirar el texto de nuevo en la línea. Yanking significa copiar el texto eliminado más recientemente del búfer de eliminación.

Ctrl y Retira el texto eliminado más recientemente de nuevo en el búfer en el cursor.
Esc y Rota el kill-ring, y tira el nuevo tope. Solo puede hacer esto si el comando anterior es Ctrl y o Esc y .

    
respondido por el ConstantineK 27.04.2011 - 23:48
6

Para aquellos que prefieren usar las teclas de flecha, presionar fn Shift + Left Arrow lo llevará a casa en la línea de comandos. De forma similar, fn Shift + Flecha derecha lo llevará al final.

    
respondido por el pauln 11.01.2013 - 17:17
5

Puede mover una palabra a la vez con opción + izquierda y opción + derecha .

En cuanto al uso de home y end , los enlaces predeterminados de Terminal son los siguientes:

  • shift + home → saltar al principio de la línea
  • shift + end → saltar al final de la línea
  • inicio → desplácese hasta la parte superior del búfer de retroceso
  • end → desplácese hasta la parte inferior del búfer de retroceso

En muchas otras aplicaciones terminales (en múltiples plataformas), esos pares modificados y no modificados se invierten (es decir, home y end se usan para saltar alrededor de la línea actual y las versiones modificadas (ya sea por shift o algo más) se utilizan para navegar por el búfer de desplazamiento hacia atrás). Puede invertir los enlaces de Terminal para que funcionen de esa manera si lo desea haciendo lo siguiente:

Vaya al menú Terminal → Preferencias → Configuración / pestaña Perfil → subpestaña Teclado.

Luego modifique los pares de acción-clave para que sean los siguientes:

  • ↖︎: Enviar texto: \ 033 [H
  • : Desplazarse hacia arriba
  • ↘︎: Enviar texto: \ 033 [F
  • ⇧↘︎: Desplácese hacia abajo

Nota: \ 033 se ingresa en el cuadro de texto a enviar en el cuadro de diálogo Editar presionando la tecla de escape.

Mientras esté allí, es posible que desee intercambiar los enlaces de página arriba y página abajo modificados y no modificados, para mantener la coherencia: presione la tecla de navegación con shift representa un comando para Terminal en sí (para navegar por el búfer de desplazamiento hacia atrás como un documento), mientras presiona uno sin enviar la tecla presionando a cualquier cosa que esté ejecutando dentro de (p. ej., bash , less , nano , screen , etc.). Los pares clave-acción para eso son:

  • ⇞: Enviar texto: \ 033 [5 ~
  • : Desplazar página arriba
  • ⇟: Enviar texto: \ 033 [6 ~
  • : Desplácese hacia abajo en la página
respondido por el Terry N 19.03.2014 - 02:20
4

Las otras respuestas son excelentes y más portátiles, pero aquí está "a la manera del OS X" para un teclado normal (que es opuesto a muchos otros terminales). Intenta lo siguiente:

Shift Inicio - Comienzo de línea
Shift Fin - Fin de línea

De enlace

    
respondido por el Alpha Fighter 13.06.2013 - 00:24
2
Las teclas

Mapping home y end con la funcionalidad deseada resolverán el problema fácilmente.

Se han publicado muchas respuestas, pero en caso de que esté utilizando zsh , puede establecer inicio en:

%pre%5
1
5
1

y establezca end en:

%pre%

haciendo clic en preferencias - perfil - teclado.

    
respondido por el Dean Seo 04.02.2017 - 11:10
1

Esta es la forma más efectiva de hacer que funcione también con vim. Ir a la Terminal - > Preferencias - > Perfiles - > Teclado y añadir:

Tecla: ↖ Acción: \ 033OH

Tecla: ↗ Acción: \ 033OF

    
respondido por el Alfredo Cardigliano 28.12.2016 - 12:40
1

Me gustaría ofrecer una solución alternativa a este problema. Esto funciona muy bien si eres un usuario de vi. Vim Key Bindings in Terminal proporciona Una forma de usar tu terminal en un estilo vim. Puede hacerlo escribiendo set -o vi en el terminal y siéntase libre de ponerlo en .bash_profile si lo desea. Después de esto, su terminal es efectivamente un editor vim. Puede usar la tecla esc para entrar en el modo de comando y caminar de una manera muy simple. Por ejemplo, 0 te lleva al principio y $ te lleva al final. También puede usar I y A para ir al principio y al final y pasar al modo de edición de inmediato. w y b le permiten avanzar y retroceder una palabra. Y si intenta ingresar al modo visual presionando v , se le dará un editor vim y el texto que tenga cuando deje este editor se ejecutará en el terminal.

Tenga en cuenta que este enlace de clave vim anulará todas las teclas de acceso rápido que aprendió de otras respuestas.

    
respondido por el Fxyang 06.01.2017 - 16:55
0

Aquí está la lista en forma imprimible, como se desee :)

enlace

También corregí un "error" en la descripción. Esto es lo que originalmente pudiste leer en las instrucciones:

ESC-d Mata desde el cursor el comienzo de la palabra anterior, o si está entre palabras, hasta el inicio de la palabra anterior.

Esto huele mal como un error de cortar y pegar, ya que ambas oraciones parciales dicen lo mismo. Hablando de lógica simple, la primera mitad debe leer "desde el cursor hasta el comienzo de la palabra actual".

    
respondido por el the_helping_hand 03.07.2014 - 15:29
0
  

... ¿qué hay de saltar alrededor de la palabra? (ctrl-left y ctrl-right en windows)

# in ~/.inputrc
"3[5C": forward-word
"3[5D": backward-word
    
respondido por el calu 07.11.2014 - 17:11

Lea otras preguntas en las etiquetas