145 votos

¿Se pueden asignar las teclas de inicio y fin cuando se utiliza el Terminal?

El Home y End de un MacBook Pro se puede emular con Fn + o f Fn + . O cuando se cambian ciertos ajustes, con el Command en lugar de Fn .

Ninguno de ellos funciona en Terminal.

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

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

158voto

rogerdpack Puntos 211

Para responder a la de cómo obtener el principio o el final de la línea, parece que por defecto Terminal le asigna estas teclas:

  • shift+home → inicio de línea, equivalente a la tecla "home" en los terminales normales.
  • shift+fin → fin de línea, equivalente a la tecla "fin" en los terminales normales.

Si quiere que el inicio y el final funcionen de forma "normal" (y no requieran el uso de las mayúsculas), vaya a [Menú de la terminal] → Preferencias → Pestaña de perfiles (o configuración en algunas versiones de OS X) → Subpestaña de teclado.

A continuación, modifique/añada estas claves para que sean las siguientes "enviar cadena a shell"

  • en casa: \033[H
  • fin: \033[F

Puede obtener el \033 parte pulsando el botón escape dentro de la entrada del diálogo de edición, si necesita añadirla.

Luego, el hogar y el fin volverán a funcionar con normalidad (uf).

También hay que tener en cuenta que "alt + ←" y "alt + →" por defecto en el terminal se asignan a la palabra izquierda y a la palabra derecha, otra combinación útil para recordar.

En versiones posteriores de Mac OS X, si la pantalla del terminal se desplaza hacia arriba o hacia abajo al pulsar la tecla de inicio/finalización, es posible que la tecla de inicio deba ajustarse a \033[1~ y la tecla de fin a \033[4~ para obtener los resultados deseados (sin necesidad de desplazarse).

Siéntete libre de modificar esta respuesta para añadir más combinaciones de teclas útiles, ya que es un wiki de la comunidad.

30 votos

\033 [H y \033 [F de inicio y final no me funcionó; sin embargo \001 y \005 hizo. Puedes introducir estos códigos en el diálogo de edición pulsando ctrl-A y ctrl-E. Estoy usando zsh, no estoy seguro si eso hace alguna diferencia.

0 votos

Turno + inicio / fin hizo el trabajo

1 votos

Llevaba tiempo intentando averiguarlo, ¡esto me ha salvado!

103voto

gary Puntos 4856

Utilice control + a para el hogar y control + e para END en la Terminal.

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

2 votos

Perfecto! ¿qué tal saltar por palabra? (ctrl-izquierda y ctrl-derecha en Windows)

0 votos

@at01 He actualizado mi respuesta.

0 votos

Otra muy útil es Ctrl+l para borrar la pantalla.

51voto

Zac Puntos 89

Suena como que usted está buscando un poco de ayuda usando readline y bash, aquí es una lista loca de cosas de teclado modificado de: http://www.math.utah.edu/docs/info/features_7.html#SEC45

Ctrla Muévete hasta el principio de la línea.
Ctrle Muévete hasta el final de la línea.
Escf Avanza una palabra.
Escb Retrocede una palabra.
Ctrll Borra la pantalla, reimprimiendo la línea actual en la parte superior.

Ctrlk Mata el texto desde la posición actual del cursor hasta el final de la línea.
Escd Mata desde el cursor hasta el final de la palabra actual, o si está entre palabras, hasta el final de la siguiente.
EscDel Mata desde el cursor el inicio de la palabra anterior, o si está entre palabras, hasta el inicio de la palabra anterior.
Ctrlw Mata desde el cursor hasta el espacio en blanco anterior. Esto es diferente a EscDelCtrla porque los límites de las palabras difieren.

Ctrld Borra el carácter que está debajo del cursor.
Ctrl_ Deshaz lo último que has hecho. Puede deshacer todo el camino hasta una línea vacía.

Y, a continuación, se explica cómo volver a introducir el texto en la línea. Tirar significa copiar el texto más recientemente eliminado del buffer de eliminación.

Ctrly Devuelve el texto más reciente al búfer del cursor.
Escy Gire el anillo de la muerte, y tire de la nueva parte superior. Sólo puede hacer esto si el comando anterior es Ctrly o Escy .

0 votos

Esto es inestimable - gracias - ¡ojalá estuviera disponible como archivo imprimible en alguna parte!

0 votos

Me doy cuenta de que no está del todo "optimizado", pero; ¿Archivo -> Imprimir?

0 votos

Wow, estos son super torpe en comparación con término en linux.. alguna manera de remapear esta tontería?

12voto

Puedes mover una palabra a la vez con option + left y option + right .

En cuanto al uso de home y end Los enlaces por defecto de Terminal son los siguientes:

  • shift + home → saltar al principio de la línea
  • shift + end → saltar al final de la línea
  • home → desplazarse a la parte superior del búfer de retroceso
  • end → desplazarse hasta el fondo del búfer de retroceso

En muchas otras aplicaciones de terminales (en múltiples plataformas), esos pares modificados y no modificados se invierten (es decir, desnudos home y end se utilizan para saltar por 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). Si lo desea, puede invertir los enlaces de Terminal para que funcionen de esa manera, haciendo lo siguiente:

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

A continuación, modifique los pares clave-acción para que sean los siguientes:

  • ︎: Enviar texto: \033 [H
  • ⇧︎: Desplácese hacia arriba
  • ↘︎: Enviar texto: \033 [F
  • ⇧↘︎: Desplácese hasta la parte inferior

Nota: \033 se introduce en el cuadro de texto a enviar en el diálogo de edición pulsando la tecla de escape.

Mientras tanto, es posible que desee intercambiar de forma similar los enlaces de los productos modificados y no modificados page up y page down para mantener la coherencia: pulsar una tecla de navegación con shift representa un comando para el propio Terminal (para navegar por el búfer de desplazamiento hacia atrás como si fuera un documento), mientras que si se pulsa una sin ella se envía la pulsación de la tecla a lo que esté ejecutando en (por ejemplo bash , less , nano , screen etc.). Los pares clave-acción para ello son:

  • ⇞: Enviar texto: \033 [5~
  • ⇧⇞: Desplazar la página hacia arriba
  • ⇟: Enviar texto: \033 [6~
  • ⇧⇟: Desplazamiento de la página hacia abajo

9voto

Suchipi Puntos 534

Para aquellos que prefieren utilizar las teclas de flecha, pulsando fnShift + Left Arrow te llevará a casa en la línea de comandos. De la misma manera, fnShift + Right Arrow te llevará hasta el final.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X