88 votos

Bash: eliminar la palabra delante del cursor

Considera el siguiente comando de bash, donde ^ indica la ubicación del cursor:

svn commit -m very/long/path/to/some/file "[bug 123456] Fix the pixel issue"
              ^

Me gustaría comprometer un archivo diferente con el mismo mensaje. ¿Cómo puedo eliminar la palabra actual, desde la ubicación del cursor hasta el próximo espacio? ¿Hay también un atajo para la eliminación hacia atrás, desde el cursor hasta el primer espacio hacia atrás?

Actualizar: ctrl+w elimina hacia atrás, ¿pero cuál atajo elimina una palabra hacia adelante?

2 votos

Ctrl u es una opción para borrar desde la ubicación del cursor hasta el principio...

28 votos

Intenta alt + d, eso podría ser útil cuando el modo de edición de emacs está configurado.

0 votos

@Mik ¿cómo se activa el modo emacs?

60voto

Nykakin Puntos 1493

Respondí una pregunta similar en unix.stackexchange.com:

Bash tiene comandos readline que no están vinculados por defecto. Puedes encontrarlos en la referencia: http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands

El comando que estás buscando se llama "shell-backward-kill-word". Primero debes seleccionar un atajo. Vamos a usar Ctrl+p, ya que es "comando anterior" - lo mismo que la flecha hacia arriba.

bind '"\C-p": shell-backward-kill-word'

La única diferencia es que debes usar el comando "shell-kill-word" en su lugar, ya que quieres eliminar hacia adelante.

También hay un comando "kill-word" con el atajo Meta+d (intenta Esc+d si no tienes la tecla Meta). Eliminará solo una parte de la ruta a la vez.

36 votos

Alt-d funciona para mí

9 votos

Generalmente, en el mundo de los teclados donde Meta no existe, Alt = Meta.

0 votos

En el mundo donde tienes muchos teclados diferentes, un hecho conveniente y bastante útil es que Esc como prefijo también funciona como Meta.

12voto

visyoual Puntos 137

Probé tanto esc+d como alt/opt+d en OSX Mavericks y también funcionan allí.

17 votos

Option + d me da en OSX

4 votos

-1 OSX no es Ubuntu. Siéntete libre de añadir un comentario, pero esto no es una respuesta.

0 votos

Debes primero habilitar la casilla de verificación "Usar opción como tecla meta" en las preferencias del terminal (perfiles -> pestaña de teclado -> casilla de verificación)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X