
digamos que el comando es "ls palabra1 palabra2 palabra3"
Quiero mover el cursor desde el final de la línea a "palabra2" pero no quiero borrar "palabra3" en el proceso. Simplemente retroceda dos palabras y llegue al comienzo de "palabra2".
¿Existe algún método abreviado de teclado para saltar una palabra hacia adelante y hacia atrás sin eliminarla en la línea de comando?
Respuesta1
Cuando el editor de líneas de tcsh está configurado en emacs
modo (que es el valor predeterminado, use bindkey -e
para volver a él si había habilitado vi
el modo anteriormente):
% bindkey | grep word | egrep 'for|back'
"^[^H" -> backward-delete-word
"^[B" -> backward-word
"^[F" -> forward-word
"^[b" -> backward-word
"^[f" -> forward-word
"^[^?" -> backward-delete-word
Así ESCy luego b/ f(o B/ F), que son las secuencias que suelen enviar los terminales al pulsar Alt+ b/ f( Alt+ Shift+ b/ fpara las mayúsculas).
Eso es lo mismo que harías en el emacs
editor.
En vi
modo (después de bindkey -v
), usaría los vi
comandos de movimiento habituales en el modo de comando vi ( b
ack, w
ord, e
nd y sus equivalentes en mayúsculas para movimientos de PALABRA (palabras separadas por espacios en blanco)).
Respuesta2
"Alt+b" para retroceder y "Alt+f" para avanzar. Además, "Alt+retroceso" debería eliminar una palabra al revés.
Respuesta3
Agregar los accesos directos como lo espera un usuario de Windows (simplemente colóquelos en su ~/.cshrc
o péguelos en su shell):
# Use CTRL + left/right to move a word at a time:
bindkey '^[[1;5D' backward-word
bindkey '^[[1;5C' forward-word
También existe la opción de utilizar otros atajos de teclado para estos, por ejemplo:
# Use ALT + left/right to move a word at a time:
bindkey '^[[1;3D' backward-word
bindkey '^[[1;3C' forward-word