2016-12-05 34 views
0

試圖學習lisp(並且我猜測emacs和它一起)。 我在想如何去清除輸出並替換它。 可能位於LISP repl或emacs緩衝區中。
類似於python中的以下內容。Common Lisp:沖洗標準輸出

def go(r): 
    for i in range(r): 
     sys.stdout.write("\rDoing %i" % i) 
     sys.stdout.flush() 

回答

5

對於Common Lisp的,你正在尋找

Functions FINISH-OUTPUT, FORCE-OUTPUT, CLEAR-OUTPUT

finish-outputforce-outputclear-output在緩衝流輸出的內部處理運動控制。

  • finish-output嘗試以確保發送到輸出流的任何緩衝的輸出已經達到了它的目的地,然後返回。

  • force-output啓動清空任何內部緩衝區,但不等待完成或確認返回。

  • clear-output嘗試中止正在進行的任何未完成的輸出操作,以便儘可能少地輸出以繼續到目的地。

Variables *DEBUG-IO*, *ERROR-OUTPUT*, *QUERY-IO*, *STANDARD-INPUT*, *STANDARD-OUTPUT*, *TRACE-OUTPUT*

  • *debug-io*的值,稱爲調試I/O,將被用於交互調試目的的流。

  • *error-output*的值,稱爲錯誤輸出,是一個應向其發送警告和非交互式錯誤消息的流。

  • 稱爲查詢I/O的*query-io*的值是在詢問用戶問題時要使用的雙向流。這個問題應該輸出到這個流,並從中讀取答案。

  • 稱爲標準輸入的*standard-input*的值是許多運算符在沒有顯式提供特定輸入流時用作缺省輸入源的流。

  • 稱爲標準輸出的*standard-output*的值是許多運算符在沒有顯式提供特定輸出流時用作輸出的缺省目標的流。

  • *trace-output*的值稱爲跟蹤輸出,是跟蹤函數(參見跟蹤)和時間宏打印其輸出的流。

的Emacs Lisp是完全不同的,你可能想從這裏開始:https://www.gnu.org/software/emacs/manual/html_node/elisp/Output-Functions.html