当我有一个命令在 stdout zsh 中生成大量内容时,最近(据我所知,过去 6 个月)停止显示输出。
例如当我做:
for i in `seq 2000`; do echo AAA; done
我没有得到任何输出,即使我按下新行(输入)光标也不会移动,但请求正在发出。
当我减少数量时seq
:
for i in `seq 20`; do echo AAA; done
我确实得到了输出。
当我在 bash 中运行这两个命令时,我每次都会得到输出。zsh 怎么了?它是否以某种方式开始缓冲 stdout?还是它出了seq
什么问题?
zsh 版本:debian/5.6.2-3
我的 .zshrc 很长,但在一个版本中可以正常工作,而在另一个版本中它开始表现得很奇怪。是否有缓冲选项之类的?
更新:我已将其范围缩小到我的 zshrc 中的以下条目:
case $TERM in
*xterm*|rxvt|(dt|k|E|a)term)
preexec () {
print -Pn "\e]2;$1\a"
}
;;
screen*)
preexec () {
print -Pn "\e\"$1\e\134"
}
;;
esac