簡體   English   中英

如何將 Clojure REPL 的內容轉儲到文件中?

[英]How can you dump contents of Clojure REPL to a file?

所以我一直在研究 Clojure 教程,到目前為止它很有趣。 不幸的是,每次我關閉我的 REPL 時,我都會丟失我在之前的 session 中創建的所有defndef

那么,為了將來節省時間,是否可以讓 Clojure REPL 將我輸入的所有內容保存到文件中,以便我可以挖掘出未來使用所需的內容?

我認為大多數人通過使用他們的 IDE 將代碼片段發送到 REPL 來工作,而不是在 REPL 中進行大量直接黑客攻擊。 這樣您就可以更好地了解程序的當前 state。

如果您使用 Emacs 和 SLIME ,您可以將 REPL 緩沖區保存到文件中,就像保存任何其他緩沖區一樣。

如果您使用的是類 Unix 操作系統,您可以使用rlwrap啟動您的 REPL。 這將為您提供 Ctrl-R 以輕松訪問歷史記錄中的命令,以及存儲歷史記錄本身。

您只需要安裝rlwrap並將其添加到您啟動 REPL 的行之前,例如rlwrap lein repl

幾個提示:

  • 我在 REPL 中做了很多編碼,但是一旦我寫了一些有用的東西,我就會將它復制/粘貼到源文件中。 然后,只要我想將 REPL 環境恢復到完全配置的 state,我就可以運行或重新加載該源文件。
  • 一些 REPL(例如,我使用的 Eclipse 逆時針 REPL)保留以前會話的歷史記錄,因此您可以向上箭頭到要重復的較早 REPL 命令。

這實際上是一個比看起來更難的問題,因為像這樣的轉儲必須考慮符號和變量依賴關系以及 output 以正確的符號順序歸檔。 也就是說,由於代碼是數據,因此應該能夠編寫一個 function 來做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM