有没有办法让Emacs Shell-Mode显示输出,因为它接收它而不是等待上一个命令完成?
例如:
python -c "import time; print 'hello'; time.sleep(3); print '...goodbye'"
将暂停3秒然后打印"你好"并且" ...再见"同时。我试图让它打印"你好",等待三秒钟,然后打印" ...再见"。
我在Windows 7上运行Emacs 25.0.93.1。
答案 0 :(得分:0)
我相信正在发生的事情是"你好"卡在输出缓冲区中并且在程序退出之前不会输出(或缓冲区填满更多)。当我在bash控制台窗口(emacs之外)中运行代码时,也会发生这种情况。
您可以使用sys.stdout.flush()
手动刷新输出缓冲区,这将导致缓冲区中的文本(" hello")立即显示。
我在emacs的shell,eshell和term模式中测试了以下代码(注意我还将print语句转换为python3语法):
python -c "import time; import sys; print ('hello'); sys.stdout.flush(); time.sleep(3); print ('...goodbye')"