有沒有一種方法,使IPython的控制檯自動重新複製代碼,例如,從IPython的控制檯,複製代碼自動格式化標準Python提示
In [131]: a = [1, 2, 3]
In [132]: a
Out[132]: [1, 2, 3]
與非標準Python的提示,即
>>> a = [1, 2, 3]
>>> a
[1, 2, 3]
的動機是:
- 行號(也許多餘的換行符)也沒有意義。
- 標準格式可隨doctest使用。
有趣的是,IPython中的Qt的控制檯同時提供「複製」和「複製(原始文本)」,和「複製」的結果在下面的默認行爲:
a = [1, 2, 3]
a
Out[132]: [1, 2, 3]
顯然,一些自動重新格式化是可以實現的。有沒有辦法自定義這個功能?
我知道PromptManager
它可以用來定製顯示的提示(例如,http://nb.nathanamy.org/2012/09/terminal-productivity/)。但是,IPython提示(帶數字)在交互式會話中很有用。我只希望複製的版本被重新格式化。
在您輸入代碼之前,您可以打開'%doctest_mode',這會給您提供'>>>'提示,直到您再次關閉它爲止。我認爲這是我們目前最接近的事情。 –
謝謝你提到這個!如果知道代碼將被預先複製,'%doctest_mode'確實很有用。奇怪的是,它似乎沒有與qtconsole ... – herrlich10
這並不完全令人驚訝 - 在Qt控制檯中,提示由前端生成,而'%doctest_mode'在內核中運行。您可以考慮添加「使用Python提示覆制」菜單選項。 –