¿Cómo moverse por una palabra en la línea de comando en TCSH?

¿Cómo moverse por una palabra en la línea de comando en TCSH?

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 emacsmodo (que es el valor predeterminado, use bindkey -epara volver a él si había habilitado viel 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 emacseditor.

En vimodo (después de bindkey -v), usaría los vicomandos de movimiento habituales en el modo de comando vi ( back, word, end 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 ~/.cshrco 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

información relacionada