it-swarm-es.com

Bash: eliminar del cursor hasta el final de la línea con un atajo de teclado

Considere el siguiente indicador de bash, donde ^ denota la ubicación del indicador:

$ git commit -am "[bug 123456] Do this and that with the bug"
                               ^

Supongamos que quiero comprometerme nuevamente con el mismo error, con un mensaje de confirmación diferente. ¿Hay alguna forma de eliminar el texto desde la posición del cursor hasta el final de la línea?

91
Adam Matan

Utilizar Ctrl+K para eliminar del cursor al final de la línea.

Utilizar Ctrl+U para borrar del cursor al comienzo de la línea.

143
user128285

Depende de si está utilizando el modo de edición vi (set -o vi) o emacs (set -o emacs) dentro de su Shell.

Por defecto, su Shell generalmente usa el modo de edición emacs.

  • En el modo emacs, la eliminación al final de la línea se puede lograr usando el comando ctrl-k.

  • Sin embargo, si está utilizando el modo de edición vi en su Shell de comandos, puede lograr el mismo resultado escribiendo Esc(que lo colocará en modo comando) seguido de d-$(si desea eliminar la línea completa, ingrese dd).

Si no está seguro de qué modo de edición está usando actualmente en su Shell, ingrese el comando set -o desde la línea de comando y podrá determinar qué modo de edición está usando actualmente:

set -o
...snip...
emacs           on
...snip...
vi              off

Para cambiar el modo de edición de la línea de comandos, simplemente escriba:

set -o vi

o

set -o emacs
46
Kevin Bowen

En caso de que solo esté familiarizado con uno de Zsh y Bash, aquí están las combinaciones de teclas equivalentes que puede necesitar:

bash

bind '"\C-k"':kill-line

zsh

bindkey "\C-k"      vi-kill-eol

Otra información relevante

Para obtener una lista de combinaciones de teclas:

# bash
bind -p

# zsh
bindkey
2
Sridhar Sarnobat