2011-11-25 80 views
0

在windows shell中,只需在shell窗口中选择文本即可暂停输出(必须启用QuickEdit模式)。在cygwin shell中也是如此(再次使用QuickEdit模式)。暂停shell输出

如何暂停emacs shell中的输出?

我需要暂停它,因为有些任务非常冗长,很难在​​大缓冲区中搜索必要的文本。

当我执行M-x comint-stop-subjob我得到一个消息“没有SIGTSTP支持”

作为一个例子尝试暂停如下:

find . -type f -name "*.txt" -exec cat {} ';' 
+0

为什么你需要暂停输出?即使输出即将到来,您也可以滚动窗口并选择文本。 – choroba

+0

有些任务非常冗长。他们甚至可以打印更多的输出,而不是缓冲区的限制,我不想'增加限制。 –

回答

3

不完全是你要求的,但clone-buffer会让你接近你想要的。将它绑定到一个方便的键并运行find命令后,调用clone-buffer将把缓冲区的内容复制到一个新的缓冲区。原始缓冲区中的find命令保持运行,但克隆的缓冲区只包含查找的输出,直到您克隆它的点。

您可以在原始窗口中多次调用此命令,为您提供一系列要检查的停止点。我不知道如何实际暂停原始窗口。

请注意,新克隆的缓冲区是全功能的shell缓冲区。

+0

谢谢,的确它的工作!我会等一段时间再接受答案。 –

2

您可以按抄送锆石停止作业。然后只需输入fg即可再次使用。

+0

感谢您的回答。我收到一条消息“没有SIGTSTP支持”,并且它继续记录 –

+0

好,所以过程无法停止。如何将其输出重定向到一个文件,可能只显示('grep')你感兴趣的行? – choroba

+0

嗯,当然有可能。我的问题更多地是关于如何轻松完成,理想情况与在Windows shell中一样,您可以选择要暂停的文本。 –

0

我不知道暂停输出,但你可能只是缩小缓冲区?

  • CXÑÑ缩小到区域
  • CXÑÑ缩小到页
  • CXÑ瓦特扩大到完整缓冲区
+0

这是一个有趣的想法。不幸的是它不起作用。我试图找到。 -type f -name“* .txt”-exec cat {}';' –