Atualmente estou usando Bash com Cygwin. Com o Bash, posso inserir estes comandos:
$ date
Thu, Apr 23, 2020 7:51:43 PM
$ echo Sunday
Sunday
Então, se eu pressionar para cima duas vezes, recebo isso, como esperado:
$ date
Se eu quiser cancelar, posso pressionar para baixo duas vezes ou Ctrl + C. Depois de cancelar, se eu pressionar para cima novamente, ele me dará o resultado mais recente, como esperado:
$ echo Sunday
Agora compare com Prompt de Comando. Eu posso inserir estes comandos:
C:\> where calc
C:\Windows\System32\calc.exe
C:\> where notepad
C:\Windows\System32\notepad.exe
Então, se eu pressionar para cima duas vezes, recebo isso, como esperado:
C:\> where calc
mas se eu quiser cancelar, não posso pressionar duas vezes. Ele permite que você pressione apenas uma vez, para que o comando mais recente seja exibido:
C:\> where notepad
como solução alternativa, você pode pressionar Esc. Mas então, se você pressionar Para cima, não obterá mais o resultado mais recente. Como não permitiu que você rolasse até o final, você obtém isto:
C:\> where calc
Parece o mesmo problema com Ctrl + C também. Não quero que o shell tente ser inteligente e lembre-se da posição na história. O Windows tem alguma opção para alterar esse comportamento, com registro ou algo assim?
O prompt de comando pode parecer um pouco rígido ao voltar do terminal Unix como ou sua porta (como Cygwin ou git bash etc.).
Não acredito que haja nada que você possa fazer a respeito, exceto tentar aprender como funciona e adaptar seu fluxo de trabalho diferente.
O que pode ajudá-lo é pressionar F7 para ver seu histórico na janela pop-up.
Além disso, você pode tentar usar Page Up e Page Down no teclado para chegar ao primeiro ou último comando do histórico, respectivamente.
O prompt de comando do Windows tem uma longa história. A maioria de seus recursos são os mesmos do DOS , que data de quatro décadas atrás (!).
A Microsoft desistiu de desenvolver o Prompt de Comando e tem a intenção de substituí-lo no futuro pelo novo Windows Terminal . Você pode testar este novo produto, pois o manuseio do histórico certamente será melhor.
Outra possibilidade é usar um add-on para o Prompt de Comando que adiciona manipulação de histórico semelhante ao Linux, o projeto Clink :
Outra alternativa bem conhecida ao prompt de comando é o ConEmu :
O projeto Cmder é construído sobre o código ConEmu, com aprimoramentos do Clink. Sua versão Git for Windows vem com uma porta para Windows de muitos comandos do Linux prontos no PATH.
As versões mais recentes do PowerShell não têm esse problema, então troquei os shells.