Notei que usar Ctrl+L para limpar meu terminal tem algumas diferenças em relação ao uso do comando clear (do ncurses 6.5.20240427).
Parece que o comando clear apagará todos os caracteres do terminal, colocará o cursor no canto superior esquerdo e então digitará o prompt.
Ctrl+L pode parecer fazer o mesmo, mas as duas linhas superiores do meu prompt (e a linha em branco acima dela) não aparecem.
Curiosamente, se eu digitasse algo depois do prompt, isso seria mantido - e não apenas a linha em que o prompt estava, mas tudo depois dele.
Pesquisei man clear
e não encontrei opções para replicar esse comportamento. Então, o que exatamente Ctrl+L faz nos bastidores? Ele está invocando um programa ou é um comportamento incorporado à maioria dos emuladores de terminal, com implementação específica para o terminal?
Tanto no Bash quanto no Zsh , CtrlLé gerenciado pelo shell e não envolve o
clear
comando. No Bash, é definido comoque corresponde ao comportamento que você está descrevendo; no Zsh ele é mapeado para
clear-screen
,e isso inclui prompts de várias linhas (então, diferentemente do Bash, com um prompt de várias linhas, a linha atual não termina no topo da tela, mas sim o início do prompt).