Можно ли отправить выбранный код (целые документы) на терминал 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. Он выполняет код за кулисами, а затем отображает весь вывод одновременно. Он не может быть использован для получения пользовательского ввода.