Alias ​​pusta komenda w terminalu

9

Chciałbym wyczyścić terminal po naciśnięciu pustego polecenia. Innymi słowy, chciałbym zadzwonić, clearkiedy uderzę Enterw pustą linię. Czy to jest możliwe?

Rozumiem, że nie tak działa terminal, ale może być fajny hack, taki jak wiązanie klawisza Enter i sprawdzanie terminala lub coś takiego.

Mikulas Dite
źródło

Odpowiedzi:

12

Ta funkcja powinna robić, co chcesz; wszystko, co robi, aby sprawdzić, czy bieżące pytanie wejściowe ( $BUFFER) jest puste ( -z):

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

Zdefiniuj go jako widget za pomocą

zle -N magic-enter

a następnie powiąż go z [ENTER]:

bindkey "^M" magic-enter

Jeśli używasz niestandardowego przypisania klucza [Enter], dostosuj linię za pomocą zle accept-line. Możesz to sprawdzić za pomocą bindkey | grep "\^M".

mpy
źródło