Bash readline borrando hasta la barra anterior


15

En el modo bash emacs, ¿hay alguna forma de eliminarlo hasta el carácter de barra diagonal anterior? Por ejemplo, si ingresé el comando cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_pathy solo quiero eliminar el reallylongincorrectfolder. ¿Hay algún acceso directo? Este es un escenario muy comandante para mí en bash. Algo como dF<char>en vi?

Respuestas:


9
bind -P |grep unix-filename-rubout

Para probar la combinación de teclas con, por ejemplo, Ctrl- b:

bind \\C-b:unix-filename-rubout

Para uso permanente, agréguelo a ~/.inputrc


2
Para añadirlo a ~/.inputrc, añadir una línea como esta en el archivo: "\C-b": unix-filename-rubout. Para ver el efecto, deberá iniciar un nuevo shell bash (o ejecutar algún otro programa que use la biblioteca de línea de lectura GNU).
Croad Langshan

11

Alt- Backspacey Ctrl- wcomúnmente se asignan a backward-kill-word, lo que hace eso. Si desea averiguar a qué está asignado en su sistema (si corresponde), ejecute bind -P | grep '^backward-kill-word'.

Según lo explicado por @Barmar , esto es diferente de unix-word-rubout, lo que lleva al límite de espacio anterior.


Pero eso matará toda la palabra ... Quiero matar solo hasta el último corte
woodstok

Elimina solo hasta la última barra aquí. La barra diagonal es uno de los separadores de palabras predeterminados. ¿Estás seguro de que estás usando Bash?
l0b0

Lo malo ... Alt-Retroceso lo elimina hasta la última barra. ¿Cuál es la diferencia entre ALt-BackSpace y Ctrl-W?
Woodstok

3
Ctl-w normalmente está obligado a unix-word-rubout: matar la palabra detrás del punto, utilizando espacios en blanco como límite de la palabra.
Barmar

2
Esto no funciona exactamente. "Las palabras están compuestas de caracteres alfanuméricos (letras y dígitos)". Por lo tanto, se detendrá en mucho más que solo cortes. El valor predeterminado unix-filename-ruboutes un poco mejor, ya que se detendrá en el espacio en blanco y se reducirá.
Sparhawk

6

Pon esto en tu .inputrcy comienza un nuevo shell:

C-b:unix-filename-rubout

Ctrl- bahora borra hacia atrás a la siguiente barra inclinada.

¡Nirvana!

No se olvide Ctrl- XCtrl- Epondrá en marcha su editor para que pueda editar una línea de comandos complicados cómodamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.