Atalho do teclado para armazenar o comando digitado e limpar a linha

12

Você conhece a situação: você está no meio da digitação de um comando longo (por exemplo, uma mensagem de confirmação) e percebe que esqueceu de executar algum comando de pré-requisito que não pode ser incluído &&. Normalmente, quando isso acontece comigo, seleciono o que digitei com o mouse, copio-o para a área de transferência, pressione Ctrl-U para limpar a linha, execute meu comando de pré-requisito e cole da área de transferência. Mas talvez haja uma maneira melhor, de preferência sem a necessidade de usar o mouse? Estou procurando soluções para bash e / ou zsh.

Chiborg
fonte

Respostas:

20

Depois de usar o CTRL-U, você pode usar o CTRL-Y para colar o que foi apagado. Funciona depois de apagar uma palavra ou várias palavras com CTRL-W também.

Observe desta maneira que você realmente não precisa copiar nada para a área de transferência ou selecioná-la com o mouse - CTRL-U puxa a linha para uma área de transferência separada, por assim dizer.

Eduardo Ivanec
fonte
5

Adicione um '#' ao início da sua linha atual. Pressione Enter para adicionar o comentário ao seu histórico. Execute o comando de pré-requisito. Vá para o comando anterior e exclua o #.

Glenn Jackman
fonte
5

Isso foi perguntado e discutido recentemente no site Unix & Linux da SE. Minha resposta explicou que, se você usar o zsh como seu shell, poderá usar o recurso de linha de comando para ocultar seu comando em andamento, executar outra coisa; seu primeiro comando retornará e você poderá finalizá-lo. Em .zshrc:

bindkey '^L' push-line

Em seguida, use Ctrl+ Lpara suspender o comando atual e voltar a ele depois de executar outra coisa.

Várias outras respostas foram fornecidas, incluindo configurações de como fazer algo semelhante no bash e algumas versões personalizadas deste built-in no zsh.

Caleb
fonte
0

Você pode Shift-Alt-3comentar a linha atual e ir para a próxima. Em seguida, você pressione up, Ctrl-e, Dele tadam!

MInner
fonte