2015-09-04 29 views
1

由於Ruby支持並行賦值和函數自動返回值,因此幾乎每個賦值和方法運行都會在處理IRB和Pry等REPL時創建輸出。Pry(Ruby REPL):如何關閉自動回顯

正常情況下,我通過在每行的末尾放一個分號來防止這種回聲效應。例如:

JSON::parse(very_long_json_string); 

這通常可以防止REPL回聲。但是,當處理非常大的枚舉數時,即使有一個錯誤可以產生足夠的輸出以在屏幕上弄亂一切,並且在我有足夠的反射來休息之前將所有有用的命令歷史記錄都放在內存中。

有沒有辦法在Pry中默認關閉此回聲效果?正如以下評論(@Stefan)所述,通過設置conf.echo = false可以在IRB中實現同樣的效果。

+1

在IRB可以設置'conf.echo = FALSE' – Stefan

+0

@Stefan這是偉大的知道!任何方式來實現對Pry相同? – retrography

+0

試試這個 JSON :: parse(very_long_json_string);零; –

回答

3

在IRB有:

conf.echo = false 

在撬你可以用空PROC更換print object

_pry_.config.print = proc {} 

你必須將舊打印對象存儲,以恢復它。

在這兩種情況下,最後一個表達式的結果仍然可以通過_

+1

該死的,你打了我2分鐘:D – mhutter

+0

@Stefan這是一個很棒的技巧,我很感激。有什麼方法可以扭轉這種情況嗎?像通過保存或重新加載原始proc?就像那樣我可以製作一個自定義的Pry命令。 – retrography

+1

哦,我發現它:'_pry_.config.print = Pry :: DEFAULT_PRINT' – retrography