Alias ​​comando vuoto nel terminale


9

Vorrei cancellare il mio terminale dopo aver inviato un comando vuoto. In altre parole, vorrei chiamare clearquando colpisco Entersu una linea vuota. È possibile?

Capisco che non è così che funziona il terminale, ma potrebbe esserci un bel trucco come legare il tasto Invio e controllare il terminale o qualcosa del genere.

Risposte:


12

Questa funzione dovrebbe fare quello che vuoi; fa tutto per controllare se l'attuale prompt input ( $BUFFER) è vuoto ( -z):

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

Definiscilo come widget con

zle -N magic-enter

e quindi associarlo a [ENTER]:

bindkey "^M" magic-enter

Se si utilizza un'associazione chiave non standard per [Enter], adattare la linea con zle accept-line. Puoi verificare con bindkey | grep "\^M".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.