Como posso simular atalhos de teclado em um alias de bash?

5

Por exemplo, um dos meus alias bash é este

alias p='clear;ls -lt;pwd;'

clear também limpa o histórico que não quero. Eu só quero limpar a tela momentaneamente.

Ctrl + L faz exatamente o que eu quero. Como posso usá-lo no meu alias?

    
por Lazer 19.09.2010 / 20:17

2 respostas

6

Se clear estiver limpando o histórico e o terminal tiver que haver uma função, alias ou script que esteja fazendo isso. Veja o que o type -a clear lhe diz.

Outra maneira de limpar o terminal é usar tput clear , que faz exatamente a mesma coisa que o clear deve fazer. Você também pode tentar fazê-lo diretamente usando a seqüência de escape (para xterm por exemplo), mas pode ser diferente para terminais diferentes (deve funcionar para qualquer um que emule xterm, como gnome-terminal, PuTTY, etc.): printf '\e[H\e[2J'

    
por 20.09.2010 / 01:02
2

O que você pediu em geral é chamado de executar um comando readline do bash (o equivalente a zle -U $key_sequence ou zle $widget $arguments[@] em zsh). Tanto quanto eu sei, isso não é possível no bash.

No entanto, neste caso específico, não observo qualquer diferença entre executar clear e digitar Ctrl + L (comando readline clear-screen ).

    
por 20.09.2010 / 00:00