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?
15

~/.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).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), ejecutebind -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.fuente
unix-word-rubout: matar la palabra detrás del punto, utilizando espacios en blanco como límite de la palabra.unix-filename-ruboutes un poco mejor, ya que se detendrá en el espacio en blanco y se reducirá.Pon esto en tu
.inputrcy comienza un nuevo shell:C-b:unix-filename-ruboutCtrl- 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.
fuente