Bash: excluir do cursor até o final da linha com um atalho de teclado

80

Considere o seguinte prompt bash, em que ^ indica a localização do prompt:

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

Suponha que eu queira confirmar novamente o mesmo erro, com uma mensagem de confirmação diferente. Existe uma maneira de excluir o texto da posição do cursor até o final da linha?

    
por Adam Matan 17.03.2013 / 09:28

3 respostas

127

Use Ctrl + K para apagar do cursor até o final da linha.

Use Ctrl + U para apagar do cursor para o começo da linha.

    
por user128285 17.03.2013 / 09:37
45

Depende se você está usando o modo de edição vi ( set -o vi ) ou emacs ( set -o emacs ) no seu shell.

Por padrão, seu shell geralmente é padronizado para o modo de edição do emacs.

  • No modo emacs, a exclusão até o final da linha pode ser feita usando o comando ctrl - k .

  • Se, no entanto, você estiver usando o modo de edição vi em seu shell de comando, o mesmo resultado pode ser obtido digitando Esc (que o colocará no modo de comando) seguido por d - $ (se você quiser deletar toda a linha, digite dd ).

Se você está incerto sobre qual modo de edição você está usando atualmente em seu shell, digite o comando set -o na linha de comando e você será capaz de determinar qual modo de edição você está usando atualmente:

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

Para alternar seu modo de edição de linha de comando, simplesmente digite:

set -o vi

ou

set -o emacs
    
por Kevin Bowen 17.03.2013 / 10:07
2

Caso você esteja familiarizado apenas com um dos Zsh e Bash, aqui estão os equivalentes de teclas que você pode precisar:

bash

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

zsh

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

Outras informações relevantes

Para obter uma lista de associações de teclas:

# bash
bind -p

# zsh
bindkey
    
por Sridhar-Sarnobat 25.09.2017 / 22:54