答え1
では、zsh
次のことができます。
zle-line-pre-redraw() {
(( BUFFERLINES == 1 + ${#BUFFER//[^$'\n']} )) || PREDISPLAY=$'\n'
}
zle -N zle-line-pre-redraw
表示するレンダリングバッファの行数が改行数に1を足した値より大きい場合(最小行がオーバーフローするか、PREDISPLAYがそのバッファの改行に設定されていることを意味します)、前の改行が追加されます。
では、zsh
次のことができます。
zle-line-pre-redraw() {
(( BUFFERLINES == 1 + ${#BUFFER//[^$'\n']} )) || PREDISPLAY=$'\n'
}
zle -N zle-line-pre-redraw
表示するレンダリングバッファの行数が改行数に1を足した値より大きい場合(最小行がオーバーフローするか、PREDISPLAYがそのバッファの改行に設定されていることを意味します)、前の改行が追加されます。