Eliminar la entrada hasta la última barra diagonal

Eliminar la entrada hasta la última barra diagonal

Muy a menudo estaré revoloteando entre varios archivos en un servidor. Ejecutaré los siguientes comandos de ejemplo en secuencia:

nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc

Para pasar de un nanocomando al siguiente, actualmente presiono Upy Backspacepara reemplazar el último segmento de la ruta. El problema con esto es que realmente,en realidadperezoso.

¿Existe algún método abreviado de teclado (o bashismo) que pueda:

  • Ser reemplazado por la última ruta utilizada (con un bit extra al final)
  • Eliminar en la línea actual (por ejemplo, después de presionar Up) volver a la última/

Respuesta1

Creo que estás buscando el atajo Alt+ Backspace.

Después de presionar Upesto, se debe borrar al carácter /o anterior space.

Respuesta2

Para detectar el enlace de línea de lectura que mata una palabra hacia atrás como desee, puede usar el siguiente comando en su terminal:

bind -p | awk '/kill/ && /word/ && /backward/'

En una instalación predeterminada de Ubuntu, el resultado podría ser:

"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)

La segunda línea parece no tener importancia en este punto, así que intentemos ver qué significa la primera línea. Por lo que tengo entendido, elbackward-kill-wordFunción readline que de hecho elimina todos los caracteres hasta que el carácter especial anterior ( ,, /etc. ) esté vinculado a la secuencia de teclas. Ahora, en esta secuencia;,\e\C-h\e representala Escclave, \C- la Ctrlclave, y \C-hsignifica Ctrl+ hquees equivalente en este casocon Backspacellave.

Entonces, estás buscandoEsc+ Ctrl+hmétodo abreviado de teclado que es equivalente aEsc+Backspacey cual,Debido al comportamiento de xterm, AltKey actúa como un metacarácter y los metacaracteres se convierten en una secuencia de dos caracteres con el carácter en sí precedido por Esc(ver man xterm), es equivalente aAlt+Backspace.

Ahora, si no te gusta y continúas olvidándolo, puedes usar el siguiente comando para crear un nuevo acceso directo, digamos Esc+ w, para tu propósito:

bind '"\ew": backward-kill-word'

Para que este nuevo acceso directo sea persistente todo el tiempo para todos los comandos que usan readline, agregue la siguiente línea a su ~/.inputrcarchivo:

"\ew": backward-kill-word

Consulte help -m bind | sensible-pagerpara obtener más información.

Respuesta3

Otra combinación de teclas es:

Alt+ Bentonces Ctrl+K

Alt + B     Move cursor backward one word on the current line    
Ctrl + K    Clear the line after the cursor

Alt+ Bentonces Alt+D

Esto elimina la última palabra sin eliminar caracteres especiales entre palabras.

información relacionada