Na linha de comando do Windows (powershell e cmd), quando você pressiona a Esctecla enquanto estiver em uma linha, o que você digitou no prompt é removido.
Descobri que pressionar a Esc
tecla no prompt do bash não faz nada. Pressionar Esc
e backspace
excluir uma palavra, mas isso deve ser feito para cada palavra.
Estou aprendendo o Bash de forma incremental e às vezes digitando algo estúpido no meio da linha e sinto que é melhor digitar do zero novamente. Para fazer isso, pressionar backspace
é a única maneira que encontrei até agora.
O que você faz?
Estou ciente do clear
comando e do Ctrl-Latalho, mas não estou falando de limpar todo o terminal. Apenas a linha.
bash
command-line
Animesh
fonte
fonte
Respostas:
Você deseja
kill-whole-line
, mas isso não é vinculado por padrão no bash.backward-kill-line
( CtrlX Backspace) eunix-line-discard
( CtrlU) ambos apagam do ponto atual até o início da linha, basta ir até o final da linha e usar qualquer um.fonte
bind -P
. Eu achoCtrl-U
e entãoCtrl-Y
é a única opção então.Você pode usar Ctrl+ Cpara abandonar o que estava digitando e obter uma nova linha de comando vazia. Consulte CTRL + C incorreto para retornar à linha de comando? .
fonte
Ctrl+avai para o início da linha e Ctrl+kexclui até o final da linha
fonte
^U
primeiro, na maioria das implementações do modo de edição de linha de comando do Emacs, ele já exclui a linha completa. Naqueles em que ele apaga apenas a esquerda do cursor (linha de leitura GNU, por exemplo), pressione^K
depois.Para expandir um pouco a resposta de Ignacio Vazquez-Abrams, você pode obter (quase) o comportamento semelhante ao Windows a partir da Escchave no bash, vinculando a
kill-whole-line
a Esccom o seguinte comandoSe você adicionar a linha ao seu
~/.inputrc
arquivo, a ligação persistirá entre as sessões.Observe, no entanto, que isso é muito fora do padrão, pois o bash realmente usa a Escchave como outra chave de modificação (como uma Alt ou Ctrl não persistente). Se você olhar a lista de
bind -P
combinações de teclas existentes (com ), provavelmente verá vários comandos ligados a combinações de teclas que começam com "\ e" (por exemplo,que configura a combinação Esc+ Bpara mover o cursor de volta ao início de palavra mais recente - mais ou menos como Ctrl+ ←, exceto que você precisa continuar soltando Esc(assim como B, é claro) se quiser fazê-lo mais de uma vez seguidas )
E isso explica por que eu disse que o comportamento que você tem é quase como o Windows: quando você pressiona Esc, o bash verifica se você o está usando em combinação com outra tecla; portanto, se você o vincular
kill-whole-line
, há um pouco de atraso entre pressionar (ou melhor, liberar) Esce o bash limpar a linha para você.No entanto, se você não se importa com nada disso e prefere conviver com o atraso do que se treinar com um pressionamento de tecla diferente, isso pode ser feito.
(Nota: muitas das informações aqui foram obtidas com a leitura - e a seguir os links - desta resposta .)
fonte
[19;
um código de escape com aparência semelhante. No final, achei o mapeamento"\e\e"
parakill-whole-line
(ou seja, toque em Esc duas vezes para limpar a linha) um bom compromisso.Esc
algumas vezes de qualquer maneira, então posso tentar isso. Atualmente, vinculo-o aCtrl
+,Del
mas nunca me lembro disso.