Terminal OS X equivalente a Ctrl+Izquierda / Ctrl+Derecha

En Windows y Linux, siempre podía presionar ctrl+ o ctrl+ para saltar una palabra hacia la izquierda o hacia la derecha en la terminal. En los editores de texto parece que + / funciona, pero no da dados en la terminal. Busqué en Google y no encontré nada excepto una página de Wikipedia que afirma que + B/ Fhace el trabajo, pero todo lo que hace es imprimir los caracteres ∫ y ƒ en mi terminal (o ı y Ï si mantengo ). ¿Algunas ideas?

Respuestas (7)

Puede usar la clave, pero debe seleccionar la opción para usarla como la clave "meta":texto alternativo

Una vez que hagas eso, + Fy + Bfuncionarán como esperas.

Impresionante... esto me ha estado volviendo loco durante mucho tiempo. Gracias.
Consulte también apple.stackexchange.com/q/1391/115 para conocer los posibles "inconvenientes" de esa opción.
Genial respuesta. +1

Esto también me estaba volviendo loco, sin embargo, no quería una solución específica de la Terminal ya que no uso la Terminal, y poder SSH en mi caja OSX también tenía que usar las combinaciones de teclas correctas.

Además, personalmente, no me importaba la clave como se discutió anteriormente; Quería mantener la combinación ctrl+ / a la que estoy acostumbrado en Linux.

Para resolver este problema, agregué lo siguiente a mi ~/.profile:

bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

Tenga en cuenta que los dos primeros se aplican a bash en la Terminal ; los dos últimos se aplican a bash en iTerm2 y conexiones ssh entrantes . No me preguntes por qué la emulación del teclado es diferente ;)

Para que conste, pude encontrar cuáles eran realmente los códigos clave gracias a una pista de esta respuesta de stackoverflow : puede ejecutar cat > /dev/nullpara monitorear los códigos clave exactos enviados durante una combinación de teclas.

(Tenga en cuenta que para mí, cuando ejecuto cat > /dev/nully presiono ctrl+ produce ^[[1;5D. Su código clave exacto puede diferir , pero el primero ^[se representa como \e, como se muestra en mi código de ejemplo).

Por cierto, si desea ver todas las combinaciones de teclas bash activas, ejecute bind -p.

Me gusta usar xxdpara examinar la entrada del teclado. Puede ver el carácter que se muestra a medida que lo escribe, luego xxdemite el valor en hexadecimal cuando escribe retorno.
¡Perfecto! Justo lo que estaba buscando :) Nunca tuve la suerte de hacer la configuración "Específica de la aplicación" anterior, ¡pero esto simplemente funciona!
Asegúrese de que control+izquierda/derecha no estén asignados a "cambiar espacios" en sus preferencias del sistema > teclado > accesos directos > exposición. No tenía otros espacios abiertos, así que parecía que la entrada de mi teclado no funcionaba.

A partir de Mac OS X Lion 10.7, Terminal asigna - / a esc+ B/ Fde forma predeterminada, por lo que ahora está integrado para bash y otros programas que utilizan estas combinaciones de teclas compatibles con emacs.

si sabe cómo usar vi, también puede activar el modo de edición de línea vi usando set -o vien su .bash_profileo en cualquier momento en la línea de comando. Luego puede cambiar entre el comando vi y los modos de inserción. Así que podría presionar escape, luego usar los comandos vi para navegar por la línea:

0 = move to beginning of line
$ = move to end of line
w = move forward one word
b = move backward one word

Una vez que llegue a la posición correcta, puede usar los otros comandos vi para ingresar a los modos insertar o agregar, o eliminar caracteres uno por uno, etc.

Nunca supe que podrías usar 0 para el comienzo de la línea, siempre usé ^
@vxjasonxv: sí, ^ se mueve al primer carácter que no es un espacio en blanco, 0 se mueve a la primera columna (que probablemente ya hayas notado, pero pensé que lo tiraría para otros: P)
OH WOW, ESO ES AÚN MEJOR, ¡todavía no me había dado cuenta! Oh hombre, esa funcionalidad (primer no espacio en blanco) de ^ siempre me molestó. Gracias.
Por supuesto, ESC ^es genial cuando lo necesitas, solo es molesto cuando querías hacer algo completamente diferente :)

Abra la terminal, vaya a preferencias, teclado. En la lista encontrará "ctrl cursor derecha" y "ctrl cursor izquierda".
Cambia sus acciones asignadas a "\033f" y "\033b" respectivamente, y podrás usar ctrl+ y ctrl+ para moverte, sin perder la tecla alt.

Parece que esc+ By esc+ Festán asignados por defecto para ir al principio y al final de las palabras. Aunque, para mi sistema, no puede mantener presionado, escsino que debe volver a presionarlo para cada palabra.

Esc nunca es un modificador, simplemente entra en el modo "Escape" cuando lo presiona, considérelo una forma modal de hacer las cosas, a diferencia de shift/ctrl/meta, etc. (en el esquema de Readline de todas formas).

La última versión del sistema operativo asigna esto a Spaces. Incluso si tiene espacios desactivados, las teclas de acceso rápido aún pueden sufrir un cortocircuito en esta ubicación oculta:

Teclas de cursor de Terminal.app: desactivar Preferencias del sistema -> Accesos directos -> Control de misión -> Mover a la izquierda un espacio