Comando vazio de alias no terminal

9

Eu gostaria de liberar meu terminal ao enviar um comando vazio. Em outras palavras, eu gostaria de chamar clear quando eu pressionar Enter na linha vazia. Isso é possível?

Eu entendo que não é como o terminal funciona, mas pode haver um bom hack como ligar a tecla Enter e verificar o terminal ou algo assim.

    
por Mikulas Dite 29.07.2013 / 23:03

1 resposta

12

Esta função deve fazer o que você quer; tudo o que faz para verificar se a entrada de prompt atual ( $BUFFER ) está vazia ( -z ):

magic-enter () {
        if [[ -z $BUFFER ]]
        then
                zle clear-screen
        else
                zle accept-line
        fi
}

Defina-o como um widget com

zle -N magic-enter

e, em seguida, vinculá-lo a [ENTER] :

bindkey "^M" magic-enter

Se você usar uma vinculação de chave não padrão para [Enter] , adapte a linha com zle accept-line . Você pode verificar com bindkey | grep "\^M" .

    
por 29.07.2013 / 23:52