Можно ли отправить выбранный код (целые документы) на терминал gedit для исполнения?

Я хочу использовать внешние инструменты для автоматизации внутреннего исполнения создаваемых в настоящее время сценариев с помощью сочетания клавиш. Единственное, что я могу найти по этому поводу, здесь. Но я думаю, что это должно быть устаревшим, потому что это производит синтаксическую ошибку, о которой я не могу найти никакой полезной информации. Я знаю, что python3 нужны скобки после print, поэтому я пробовал с и без, но выдает ту же ошибку. Как ни странно, print commands.getoutput(line)) генерирует синтаксическую ошибку, распознающую пропущенную открывающую скобку.

Также я изменил "комментарий" (я думаю) в верхней части инструмента, чтобы python3 думая, что переводчик будет обрабатывать любые круглые скобки происходило немного более изящно, но это не пойдет, потому что commands видимо больше не существует

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

РЕДАКТИРОВАТЬ Доказательство того, что мой синтаксис точен

РЕДАКТИРОВАТЬ Я понял, что проблема может быть связана с моим кодом, потому что ранее я работал со сценарием длиной в несколько страниц, поэтому я открыл новый документ и попробовал следующие простые утверждения. Результаты интересные, но ничего не говорите.

вход

True == True

Выход

Running tool: run source

sh: 1: True: not found


Done.

Хм, хорошо.


вход

True==True

Выход

Running tool: run source



Done.

Ой! Может быть, он сделал расчет, но он просто не распечатал!


вход

print(True==True)

Выход

Running tool: run source

sh: 1: Syntax error: word unexpected (expecting ")")


Done.

... Вернемся к исходной точке, я думаю.


вход

print True==True 

Выход

Running tool: run source

sh: 2: Syntax error: ";" unexpected


Done.

Что за чертова точка с запятой?!

РЕДАКТИРОВАТЬ Так что я думал, что у меня есть проблема решена ниже. Не так уж много получается... Я только что понял, что это не отвечает на вопрос! Я спросил, можно ли отправить выбранный код в терминал Gedit для выполнения. Идея заключалась в том, чтобы создать IDLE-подобный режим, где я мог бы вооружить терминал классами, функциями и переменными из моего документа, а затем взаимодействовать с ним вживую. Внешние инструменты используют "панель вывода", которая помещается во вкладку рядом со встроенным терминалом Python. Он выполняет код за кулисами, а затем отображает весь вывод одновременно. Он не может быть использован для получения пользовательского ввода.

1 ответ

Я понятия не имею, почему ошибки читаются так, как они, но по счастливой случайности я написал работающий код...

Это выглядит так:

Plugin

#!/usr/bin/env python3

import sys

exec(sys.stdin.read())

- Клавиша быстрого доступа: Alt+R --- или все, что вам удобно

-Сохранить: ничего

-Вход: текущий выбор (по умолчанию для документа)

-Выход: отображение в нижней панели

-Применимость: | Все документы |Python 3

вход

print(True == True)

Выход

Running tool: run source

True

Done.

РЕДАКТИРОВАТЬ Я только что понял, что это не отвечает на вопрос! Я спросил, можно ли отправить выбранный код в терминал Gedit для выполнения. Идея заключалась в том, чтобы создать IDLE-подобный режим, где я мог бы вооружить терминал классами, функциями и переменными из моего документа, а затем взаимодействовать с ним вживую. Внешние инструменты используют "панель вывода", которая помещается во вкладку рядом со встроенным терминалом Python. Он выполняет код за кулисами, а затем отображает весь вывод одновременно. Он не может быть использован для получения пользовательского ввода.

Другие вопросы по тегам