Commande vide d'alias dans le terminal

9

Je voudrais effacer mon terminal en appuyant sur soumettre une commande vide. En d'autres termes, je voudrais appeler clearquand je frappe Entersur une ligne vide. Est-ce possible?

Je comprends que ce n'est pas ainsi que fonctionne le terminal, mais il pourrait y avoir un bon hack tel que la liaison de la touche Entrée et la vérification du terminal ou quelque chose.

Mikulas Dite
la source

Réponses:

12

Cette fonction devrait faire ce que vous voulez; tout ce qu'il fait pour vérifier si l'invite courante ( $BUFFER) est vide ( -z):

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

Définissez-le comme un widget avec

zle -N magic-enter

puis liez-le à [ENTER]:

bindkey "^M" magic-enter

Si vous utilisez une liaison de touches non standard pour [Enter], adaptez la ligne avec zle accept-line. Vous pouvez vérifier avec bindkey | grep "\^M".

mpy
la source