9

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

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

1 ответ1

12

Эта функция должна делать то, что вы хотите; все это делает, чтобы проверить, является ли текущий ввод подсказки ($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" .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .