zsh новая строка после каждой команды

могу ли я настроить приглашение, чтобы показать новую строку после каждой команды?

приведу пример. На следующем скриншоте я запустил cat .zshrc. Я хочу иметь новую строку между последней строки вывода команды, . ~/.zsh_aliases и ~ $.

enter image description here

4 ответов


редактировать ~/.zshrc и добавить строку precmd() { print "" }. Это просто напечатает пустую строку перед отображением приглашения.


Я знаю, что это немного старо, но я нашел способ, даже если он не очень чистый, я просто хотел поделиться им:

function precmd {
    if [[ "$NEW_LINE" = true ]] then
        if [[ "${ADD_NEW_LINE}" = true ]] then
            PROMPT=$'\n'"${PROMPT}"
            ADD_NEW_LINE=false
        fi
    else
        PROMPT="${PROMPT}"
        NEW_LINE=true
        ADD_NEW_LINE=true
    fi
}

надеюсь, что это помогает


другой способ-просто установить пользовательскую подсказку в ~/.zshrc Это включает символ новой строки. Например:

autoload -Uz promptinit
promptinit

PROMPT="
%n@%m:%~ $ "

принятый ответ (автор @abid-h-mujtaba) всегда печатает новую строку, даже при первой загрузке оболочки. Я отправил редактирование, которое по какой-то причине не было принято.

это то, что я использую в своей личные dotfiles (см. "конфигурация" окно в zshrc):

function precmd() {
    # Print a newline before the prompt, unless it's the
    # first prompt in the process.
    if [ -z "$NEW_LINE_BEFORE_PROMPT" ]; then
        NEW_LINE_BEFORE_PROMPT=1
    elif [ "$NEW_LINE_BEFORE_PROMPT" -eq 1 ]; then
        echo "\n"
    fi
}