从IPython复制代码而不带领三点

时间:2013-12-31 13:45:09

标签: python ipython qtconsole

我正在使用IPython Qt控制台,当我从Ipython复制代码时,就会出现这样的情况:

    class notathing(object):
        ...:
        ...:     def __init__(self):
        ...:         pass
        ...:

有没有办法复制它们而没有那些领先的三点和双立方?

P.S。我在上下文菜单中尝试了CopyCopy Raw Text,但它仍然是相同的。操作系统:Debian Linux 7.2(KDE)。

5 个答案:

答案 0 :(得分:21)

如何在没有提示(包括续行)的情况下使用%hist n打印行n(或一系列行),并从中进行复制? (只需滚动回到该行几乎一样好。)

In [1]: def foo():
   ...:     return 1+2
   ...: 

In [6]: %history 1
def foo():
    return 1+2

答案 1 :(得分:5)

ipython的一个很酷的功能是session logging。如果启用它,则会话中输入的代码将记录到文件中。它非常有用,我一直都在使用它。

为了让事情变得更加轻松,我有一个shell别名ipy_log_cat,它打印整个文件。您可以执行以下操作:ipy_log_cat | tail以获取最新的输入行。 (这对grep会话历史记录等也很有用。)您还可以通过将其汇总到xclip来保存一些键盘/鼠标笔划!

答案 2 :(得分:3)

此QTconsole副本回归已修复,请参阅https://github.com/ipython/ipython/issues/3206 - 我可以确认在Canopy 1.2 GUI的QtConsole中再次出现所需的行为,我怀疑,免费用户可以安装ipython egg Enthought鸡蛋回购。

答案 3 :(得分:2)

这对你来说可能过于迂回,但你可以使用%save magic函数来保存有问题的行,然后从保存文件中复制它们。

答案 4 :(得分:1)

我倾向于为这种事情保留一个开放的gvim窗口。按原样粘贴您的类定义,然后执行以下操作:

:%s/^.*\.://