Posso fazer com que o comando clear se comporte como Ctrl-L no Bash?

Posso fazer com que o comando clear se comporte como Ctrl-L no Bash?

Parece que cleare bash Ctrl- Lsão bem diferentes; clearremove completamente todas as informações anteriores do terminal (para que você não possa rolar para cima) enquanto Ctrl- Lapenas rola a tela para que o cursor fique no topo da página para que você ainda possa rolar para cima e ver as informações anteriores. Eu prefiro muito mais o sistema Ctrl- L. Existe uma maneira de substituir clearpara que ele faça um Ctrl- Lem vez de limpar todas as informações anteriores do terminal? Este não é um grande problema, mas estou apenas me perguntando, por curiosidade, se existe uma maneira de alias clearapontar para minha Ctrlfuncionalidade preferida L.

Como observação lateral, acabei de notar que o PowerShell também tem uma ligação para Ctrl- Le funciona da mesma maneira que Ctrl- Lno bash; parece que os designers do PowerShell aproveitaram muito do bash, enquanto cmd.exeos consoles não têm essa funcionalidade.

Responder1

Existe uma maneira de substituir clear para que ele execute um Ctrl-L em vez de limpar todas as informações anteriores do terminal?

alias clear='tput -x clear'

Sim, Ctrl-Lno bash (enquanto estiver no set -o emacsmodo) faz exatamente a mesma coisa.

Ou você pode simplesmente conectar o escape com alias clear='printf "\033[H\033[2J"'o qual deve funcionar na maioria dos emuladores de terminal e não assumir que você o possui ncursesou basho instalou.

Obs: oclearO miniaplicativo do busybox NÃO limpa o buffer de rolagem, então você não precisa fazer nada de especial se estiver usando algum sistema baseado no busybox, como acontece com a maioria dos sistemas Linux embarcados.

Responder2

clearé um comando de terminal, trecho de man clear:

DESCRIPTION clear limpa sua tela se isso for possível, incluindo seu buffer de rolagem (se a capacidade “E3” estendida estiver definida). clearprocura no ambiente o tipo de terminal fornecido pela variável de ambiente TERM e, em seguida, no banco de dados terminfo para determinar como limpar a tela. cleargrava na saída padrão. Você pode redirecionar a saída padrão para um arquivo (o que impede que o clear realmente limpe a tela) e, posteriormente, cat o arquivo para a tela, limpando-o naquele ponto.

Ctrl+ lé um atalho de teclado parareadlinecomando clear-screen( man 3 readline).

Limpe a tela e redesenhe a linha atual, deixando-a na parte superior da tela. Com um argumento, atualize a linha atual sem limpar a tela.


Não consigo encontrar uma maneira de criar um alias clearpara o comando readline clear-screene pode não ser possível.

informação relacionada