Alias-Leerbefehl im Terminal


9

Ich möchte mein Terminal löschen, wenn ich einen leeren Befehl abschicke. Mit anderen Worten, ich möchte anrufen, clearwenn ich Enterauf eine leere Zeile drücke. Ist das möglich?

Ich verstehe, dass das Terminal nicht so funktioniert, aber es könnte einen netten Hack geben, wie das Binden der Eingabetaste und das Überprüfen des Terminals oder so.

Antworten:


12

Diese Funktion sollte tun, was Sie wollen; Alles, was es tut, um zu überprüfen, ob die aktuelle Eingabeaufforderung input ( $BUFFER) leer ist ( -z):

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

Definieren Sie es als Widget mit

zle -N magic-enter

und binden Sie es dann an [ENTER]:

bindkey "^M" magic-enter

Wenn Sie eine nicht standardmäßige Schlüsselbindung für verwenden [Enter], passen Sie die Zeile mit an zle accept-line. Sie können mit überprüfen bindkey | grep "\^M".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.