it-swarm-es.com

¿Hay alguna forma en el terminal OS X para mover el cursor palabra por palabra?

Conozco la combinación Ctrl+A para saltar al principio del comando actual, y Ctrl+E para saltar hasta el final.

Pero, ¿hay alguna manera de saltar palabra por palabra, como Alt+/ En aplicaciones de cacao hace?

720
Arne

Fuera de la caja se puede utilizar el bastante extraño Esc+F para moverse al comienzo de la siguiente Palabra y Esc+B para moverse al principio de la palabra actual.

522
Kristian J.

En Mac OS X: los siguientes métodos abreviados de teclado funcionan de forma predeterminada. Tenga en cuenta que debe hacer que Opción la tecla actúe como Meta en las preferencias del Terminal (en la pestaña del teclado)

  • alt (⌥)+F para saltar F orward por una palabra
  • alt (⌥)+B para saltar B inckward por una palabra

He observado que los enlaces de teclas de emacs predeterminados para la navegación de texto simple parecen funcionar en shells de bash. Puedes usar

  • alt (⌥)+D para borrar una palabra a partir de la posición actual del cursor
  • ctrl+A saltar al inicio de la linea
  • ctrl+E saltar al final de la línea
  • ctrl+K para matar la línea a partir de la posición del cursor
  • ctrl+Y para pegar texto desde el búfer de matar
  • ctrl+R para anular la búsqueda de los comandos que escribió en el pasado de su historial
  • ctrl+S para reenviar la búsqueda (funciona en zsh para mí pero no bash)
  • ctrl+F para avanzar por un char
  • ctrl+B moverse hacia atrás por un char
  • ctrl+W para quitar la palabra hacia atrás desde la posición del cursor
384
Varun Katta

Así es como puedes hacerlo

De manera predeterminada, la Terminal tiene estos accesos directos para mover (izquierda y derecha) Palabra por Palabra:

  • esc+B (izquierda)
  • esc+F (Correcto)

Puedes configurar alt+ y  para generar esas secuencias para ti:

  • Abrir preferencias de terminal (cmd+,);
  • En la pestaña Configuración, seleccione Teclado y haga doble clic en ⌥ ← si está allí, o agréguelo si no lo está.
  • Configure el modificador como desee y escriba la tecla de método abreviado en el cuadro: esc+B, generando el texto \033b (no puede escribir este texto manualmente).
  • Repetir para Word-right (esc+F se convierte en \033f)

Alternativamente, puede consultar esta publicación de blog en textmate:

http://blog.macromates.com/2006/Word-movement-in-terminal/

273
Fil

Cambie a iTerm2 . Es gratis y mucho mejor que la vieja terminal. También tiene muchas más opciones de personalización, como atajos de teclado.

También me encanta que puedas usar. cmd y 1-9 para cambiar entre pestañas. Pruébalo y nunca volverás a la terminal regular :)

Cómo configurar las preferencias de teclado personalizadas en iterm2

  • Instala iTerm2
  • Inicia y luego ve al panel de preferencias.
  • Elija la pestaña de perfiles de teclado
  • Deberá copiar el perfil a algo nuevo y luego eliminar los accesos directos de las teclas de flecha, como ^Right/Left o si no te importa una copia de seguridad, simplemente elimínalos del perfil predeterminado.
  • A continuación, asegúrese de que su perfil modificado esté seleccionado (destacado)

Picture 1.png

  • Ahora elige la pestaña del teclado (fila superior)

iTerm 2

  • Haga clic en el botón más para agregar un nuevo método abreviado de teclado
  • En el primer tipo de caja CMD+Left arrow
  • En la segunda casilla elige "enviar código de escape"
  • En el tercer cuadro escribe la letra. B

Picture 2.png

  • Repita con las combinaciones de teclas deseadas. escape+B mueve una palabra a la izquierda, escape+f Mueve una palabra a la derecha.
  • también puede desear configurar cmd+d para borrar la palabra delante del cursor con escape+d

A menudo presiono el botón equivocado (cmd / control / alt) con una tecla de flecha y así tengo mis combinaciones de teclas de flecha con todos los botones configurados para avanzar y retroceder palabras, pero por favor haga lo que más le convenga.

157
cwd

En realidad hay un enfoque mucho mejor. Sostener option ( alt en algunos teclados) y presione las teclas de flecha hacia la izquierda o hacia la derecha para moverse por Word. Simple como eso.

option
option

También ctrle te llevará al final de la línea y ctrla te llevará al comienzo.

142
mdubez

Yo tengo Alt+/ trabajando: abierto Preferencias "Configuración" Teclado, establezca la entrada para opción cursor a la izquierda a enviar cadena a Shell:\033b, y configure - opción cursor a la derecha a enviar cadena a Shell:\033f. También puede usar esto para otras combinaciones de teclas de control.

78
Peter Hilton

En realidad, depende de qué Shell uses, sin embargo, la mayoría de los shells tienen enlaces similares. Los enlaces a los que se refiere (por ejemplo, Ctrl+A y Ctrl+E) son enlaces que encontrará en muchos otros programas y se usan desde hace mucho tiempo, por cierto, también funcionan en la mayoría de las aplicaciones de UI.

Aquí hay un vistazo de los enlaces por defecto para Bash:

Los atajos de teclado Bash más importantes

Tenga en cuenta que también puede personalizarlos. Necesitas crear un archivo, el nombre que desees, nombré el mío .bash_key_bindings y lo puse en mi directorio de inicio. Allí puede establecer algunas opciones generales de bash y también puede establecer enlaces de teclas. Para asegurarse de que se apliquen, debe modificar un archivo llamado ". Bashrc" que bash lee en el inicio (debe crearlo, Si no existe) y realice la siguiente llamada allí:

bind -f ~/.bash_key_bindings

~ significa directorio de inicio en bash, como se indicó anteriormente, puede nombrar el archivo como lo desee y también ubicarlo donde lo desee, siempre que alimente la ruta correcta + nombre para enlazar.

Permítame mostrarle algunos extractos de mi archivo .bash_key_bindings:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

Estas solo configuran un par de opciones (por ejemplo, deshabilitar el timbre; todo esto se puede consultar en la página web de bash).

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

Estos se aseguran de que los personajes solos no hagan nada más que asegurarse de que el carácter esté "escrito" (se insertan en el Shell).

"\C-dW": kill-Word
"\C-dL": kill-line
"\C-dw": backward-kill-Word
"\C-dl": backward-kill-line
"\C-da": kill-line

Esto es bastante interesante. Si golpeo Ctrl+D solo (seleccioné d para borrar), no pasa nada. Pero si luego escribo una w minúscula, la palabra a la izquierda del cursor se elimina. Si escribo una mayúscula, sin embargo, la palabra a la derecha del cursor se mata. Lo mismo ocurre con ly L en relación con toda la línea a partir del cursor. Si escribo una "a", la línea completa se elimina (todo antes y después del cursor).

Puse saltando una palabra hacia adelante Ctrl+F y una palabra al revés Ctrl+B

"\C-f": forward-Word
"\C-b": backward-Word

Como puede ver, puede hacer un acceso directo, que conduce a una acción de inmediato, o puede hacer una, que solo entra en una secuencia de caracteres y luego tiene que escribir uno (o más) caracteres para hacer que una acción tenga lugar como Se muestra en el ejemplo más arriba.

Por lo tanto, si no está satisfecho con los enlaces predeterminados, no dude en personalizarlos como desee. Aquí hay un enlace al manual de bash para más información.

38
Mecki

Si eres un usuario de Vim, puedes probar el modo vim de bash. Ejecuta esto o ponlo en tu archivo ~/.bashrc:

set -o vi

Por defecto estás en modo de inserción; pulsa escape y puedes moverte igual que en Vim en modo normal, así que movimiento por palabra es w o b, y las teclas de movimiento habituales también funcionan .

14
jches

Si marca Use option as meta key en la pestaña del teclado de las preferencias, entonces los comandos de estilo emacs predeterminados para Word hacia adelante y hacia atrás y ⌥F (Alt+F) y ⌥B (Alt+B) respectivamente.

Recomiendo leer De Bash a Z-Shell . Si quieres aumentar tu destreza de bash/zsh!

14
Matt

A partir de Mac OS X Lion 10.7, mapas de terminales Option-Left/Right Arrow a Esc-b/f de forma predeterminada, por lo que ahora está integrado para bash y otros programas que usan estas combinaciones de teclas compatibles con emacs.

12
Chris Page

En Bash, estos están obligados a Esc-B y Esc-F. Bash tiene muchos, muchos más atajos de teclado; Echa un vistazo a la salida de bind -p para ver qué son.

8
Andy Lynch

En iterm2 's Preferencias> Perfil> Claves , haga clic en el + a continuación Asignaciones de teclas y graba un nuevo atajo. Para Acción , seleccione Send Escape Sequence y escriba b o f para atrás y adelante respectivamente.

Cuando intenté grabar uno para (Ctrl+), Noté en el campo Atajo de teclado que la flecha nunca apareció. Resulta que tuve que deshabilitar la configuración predeterminada de mac Preferencias del sistema> Teclado> Accesos directos> Control de misión shorcuts primero para que las cosas funcionen, ya que anularán iterm2 atajos por defecto Debería ser cierto para la aplicación de terminal estándar, también.

Keyboard system preferences

3
qix

Mantenga presionada la tecla Opción y haga clic donde desee que se mueva el cursor

2
Dan Alboteanu

Utilice Edición de texto natural preset!

 enter image description here

Esencialmente enlaza, entre otras secuencias de teclas, Opción + Flecha izquierda a secuencia ^[b y Opción + Flecha derecha a ^[f

Esto funciona en fish and bash, así como en psql terminal.

0
Dziamid