Se eu estiver usando o terminal e digitando uma linha de texto para um comando, existe uma tecla de atalho ou alguma maneira de limpar / excluir essa linha?
Por exemplo, se minha linha / comando atual é algo muito longo como:
> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>
Existe uma tecla de atalho ou comando para ir do acima para:
>
?
Normalmente, pressionarei a ↓tecla e, se minha linha atual for uma nova na história, isso a limpará. Mas se eu estiver passando pelo meu histórico de comandos por meio da ↑tecla e começar a editar ou usar esses comandos, ↓apenas alterará o prompt para o próximo comando mais recente do histórico, para que não funcione aqui, a menos que eu pressione ↓várias vezes.
Respostas:
Você pode usar Ctrl+ Upara esclarecer até o início.
Você pode usar Ctrl+ Wpara excluir apenas uma palavra.
Você também pode usar Ctrl+ Cpara cancelar.
Se você quiser manter o histórico, use Alt+ Shift+ #para fazer um comentário.
Folha de Dicas do Modo de Edição do Bash Emacs
fonte
<kbd>...</kbd>
tag para mostrar as chaves no SO.ESC
é sua própria chave modificadora no bash. É usado para cancelar a navegação no histórico (CTRL
+r
) ou trocar as duas últimas palavras atrás do cursor (ESC
+t
).Apenas para resumir todas as respostas:
fonte
Alt + D
Alt
+D
Não funciona é por isso que eu não incluí-lo :(CTRL + L
limpa a tela, mas mantém o que foi digitado na linha de comando atual.Ctrl + Alt + >
move para o final do histórico de entrada, o que é perfeito quando você deseja cancelar a pesquisa no histórico.Eu tenho a lista completa de atalhos:
fonte
CTRL
+L
(16.) preserva o conteúdo da linha de comando atual.Ctrl
+h
: apagar o carácter antes do cursorCtrl+ A, Ctrl+ Kpara limpar a linha atual no terminal. Você pode recuperá-lo com Ctrl+ Yse precisar.
fonte
ou se você estiver usando o modo vi, pressione Escseguido decc
para recuperar o que você acabou de apagar Esce depois p:)
fonte
echo 'set editing-mode vi' >> ~/.inputrc
. Também funciona em lugares como prompts interpretador Python e alguns clientes SQLNão tenho certeza se você o ama, mas eu uso Ctrl+ A(para começar a linha) e Ctrl+ K(para excluir a linha). Eu estava familiarizado com esses comandos do emacs e os descobri acidentalmente.
fonte
Uma alternativa para Ctrl+ A, Ctrl+ Ké Ctrl+ E, Ctrl+ U.
fonte
Ctrl+ w: move caracteres e (várias) palavras restantes do cursor para um buffer de toque
Ctrl+ y: insira a última entrada do seu buffer de toque e, em seguida, você pode usar Alt+ ypara girar pelo seu buffer de toque. Pressione várias vezes para continuar na entrada "anterior" no buffer de toque.
fonte
CTRL+ Re comece a digitar para procurar comandos anteriores no histórico. Mostrará linhas completas.
CTRL+ Rnovamente para alternar.
fonte
Ctrl + W limpará a palavra à esquerda.
fonte
Adicione à lista:
No modo Emacs, pressionar Esc, seguido de Rexcluirá a linha inteira.
Eu não sei por que, apenas acontece de encontrá-lo. Talvez não seja usado para excluir a linha, mas tenha o mesmo efeito. Se alguém souber, por favor me diga, obrigado :)
Funciona no Bash, mas não funciona no Fish.
fonte
revert-line
comando readline: "Desfazer todas as alterações feitas nesta linha". Por padrão, está vinculado aM-r
(Meta-R), que pode ser Alt-R ou Esc R. Isso significa que na verdade não está excluindo a linha, apenas quando estava vazia; se você rolar de volta no histórico de comandos e alterar um comando, emita o problemarevert-line
; ele voltará ao comando original e não excluirá a linha.Para excluir a linha inteira, não importa onde esteja o cursor, você pode usar o
kill-whole-line
comando, mas ele é ilimitado por padrão. Ele pode ser vinculado a, por exemplo, Ctrl+ Alt+ Kinserindono arquivo init do Readline (convencionalmente
~/.inputrc
).Várias observações:
Para evitar reatribuir acidentalmente uma sequência de teclas que já está em uso para outra coisa, você pode verificar todas as suas ligações com
bind -P
. Verifique a ligação sugerida comINPUTRC
. Se não estiver definido, o padrão é~/.inputrc
, ou (se isso não existir)/etc/inputrc
. Observe que se você tiver~/.inputrc
,/etc/inputrc
será ignorado.bind
builtinfonte
Para limpar toda a linha (2 maneiras diferentes):
fonte
Alt+ #comenta a linha atual. Ele estará disponível no histórico, se necessário.
fonte