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.

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".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.