如果命令太长,则在命令开头插入换行符

如果命令太长,则在命令开头插入换行符

与此类似问题,但不是在提示符末尾添加新行,而是在长命令的开头添加新行(当命令到达命令行窗口的右侧时)。

我相信我在鱼身上看到了这样的行为,如图所示视频。它仅将换行符添加到包含提示的行。

v5.8在 Linux ( kernel: v5.10)上使用 zsh ( )

编辑:

我如何在 zsh 或 bash 中实现这种行为?

答案1

在 中zsh,您可以执行以下操作:

zle-line-pre-redraw() {
  (( BUFFERLINES == 1 + ${#BUFFER//[^$'\n']} )) || PREDISPLAY=$'\n'
}
zle -N zle-line-pre-redraw

如果要显示的渲染缓冲区的行数大于换行符的数量加 1(意味着至少一行溢出或 PREDISPLAY 已设置为该缓冲区的换行符),则会在前面添加换行符。

相关内容