2011-11-25 90 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 {}';' –