Perintah kosong alias di terminal

9

Saya ingin menghapus terminal saya setelah mengirim perintah kosong. Dengan kata lain, saya ingin menelepon clearketika saya menekan Entersaluran kosong. Apakah itu mungkin?

Saya mengerti bahwa ini bukanlah cara kerja terminal, tetapi mungkin ada peretasan yang bagus seperti mengikat tombol Enter dan memeriksa terminal atau sesuatu.

Mikulas Dite
sumber

Jawaban:

12

Fungsi ini harus melakukan apa yang Anda inginkan; semua itu dilakukan untuk memeriksa apakah input prompt saat ini ( $BUFFER) kosong ( -z):

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

Tentukan sebagai widget dengan

zle -N magic-enter

dan kemudian ikat ke [ENTER]:

bindkey "^M" magic-enter

Jika Anda menggunakan kunci non-standar yang mengikat [Enter], sesuaikan dengan zle accept-line. Anda bisa memeriksanya bindkey | grep "\^M".

mpy
sumber