Псевдоним пустой команды в терминале

9

Я хотел бы очистить свой терминал после нажатия кнопки отправки пустой команды. Другими словами, я хотел бы позвонить, clearкогда попал Enterв пустую строку. Это возможно?

Я понимаю, что это не то, как работает терминал, но может быть полезен хак, такой как привязка клавиши Enter и проверка терминала или что-то в этом роде.

Микулаш Дите
источник

Ответы:

12

Эта функция должна делать то, что вы хотите; все, что он делает, чтобы проверить, является ли текущий запрос input ( $BUFFER) пустым ( -z):

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

Определите его как виджет с

zle -N magic-enter

а затем привязать его к [ENTER]:

bindkey "^M" magic-enter

Если вы используете нестандартную привязку клавиш для [Enter], адаптируйте строку с помощью zle accept-line. Вы можете проверить с bindkey | grep "\^M".

МРУ
источник