Копировать код из IPython без ведущих тройных точек

Я использую IPython Qt Console, и когда я копирую код FROM Ipython, он выглядит следующим образом:

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

Есть ли способ скопировать их без этих тройных точек и doublecolon?

P.S. Я попробовал как Copy, так и Copy Raw Text в контекстном меню, и он все тот же. ОС: Debian Linux 7.2 (KDE).

Ответ 1

Эта регрессия копирования QTconsole исправлена, см. https://github.com/ipython/ipython/issues/3206 - Я могу подтвердить, что желаемое поведение снова присутствует в QtConsole в Canopy 1.2 GUI и, я подозреваю, в яйце ipython, которое можно установить бесплатными пользователями из репозитория яйца Enthought.

Ответ 2

Как насчет использования %hist n для печати строки n (или диапазона строк) без подсказок (включая продолжение строк) и выполнения вашей копии? (Просто прокрутка к этой строке почти такая же).

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

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

Ответ 3

Одной из интересных функций ipython является регистрация сеанса. Если вы включите его, код, который вы вводите в сеанс, регистрируется в файле. Это очень полезно, я использую его все время.

Чтобы сделать вещи для меня еще более унылыми, у меня есть псевдоним оболочки ipy_log_cat, который печатает весь файл. Вы можете сделать что-то вроде: ipy_log_cat | tail, чтобы получить самые последние строки ввода. (это также полезно для истории сеансов grep и т.д.). Вы также можете сохранить несколько штрихов клавиатуры/мыши, подключив его к xclip!

Ответ 4

Это может быть слишком круто для вас, но вы можете использовать функцию сохранения% save, чтобы сохранить соответствующие строки, а затем скопировать их из файла сохранения.

Ответ 5

Я стараюсь держать открытое окно gvim для такого рода вещей. Вставьте определение своего класса как есть, а затем сделайте что-то вроде:

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