//Эта страница доступна также на следующих языках:// [[gschem_repl|English]]
====== Использование REPL в gschem ======
===== Встроенные графические функции REPL в gschem =====
Поле ввода процедур guile открывается по нажатию клавиши :
(двоеточие). После этого пользователь может вводить команды в
появившемся поле ввода и наблюдать результат выполнения команд в
окне журнала.
===== REPL в фоновом терминале =====
В текущей версии репозитория geda-gaf (на 09.02.2016) имеется
дополнительная функция вызова REPL в фоновом терминале,
запускаемая по нажатию fShift-r.
Учтите, что в данный момент можно запустить её несколько раз, что
может привести к путанице в терминале. Кроме того, есть
вероятность закрыть работающую версию gschem, при использовании
некоторых сочетаний клавиш.
При работе в терминале можно подключить функции библиотеки
//readline//. Для этого в терминале следует набрать:
(use-modules (ice-9 readline))
(activate-readline)
===== Внешний графический REPL =====
Для запуска внешнего графического окна, предоставляющего функции
REPL, необходима библиотека работы с REPL из проекта
//guile-gnome//. В Debian, например, для её использования необходимо
установить пакет //guile-gnome2-gtk//. Для вывода окна наберите в
поле встроенного REPL:
(use-modules (gnome-2) (gnome gtk) (gnome gtk graphical-repl))
(guile-gtk-repl)
===== REPL в любом терминале =====
Для запуска REPL в терминале нужно открыть сокет изнутри gschem. Для
этого надо загрузить системный модуль для REPL и вызвать функцию
порождения сервера.
(use-modules (system repl server))
(spawn-server)
Без параметров функция запуска сервера работает с портом 37146,
используемым в guile по умолчанию. Для использования другого порта
можно задать, например:
(spawn-server 1234)
При открытии порта учтите соображения по безопасности, указанные здесь
https://lists.gnu.org/archive/html/guile-devel/2010-10/msg00044.html.
Дальше необходимо просто подключиться к нему любой программой,
которая может работать с сокетом, например, используя **telnet**,
**netcat** или другую программу. Примеры использования **telnet**:
$ telnet localhost 37146
Пример использования **netcat**:
$ nc localhost 37146
В этом случае интерфейс //readline// работать не будет.
Пользователи **Emacs** для работы с REPL могут использовать чудесное
окружение //Geiser//.
Для этого нужно установить данный пакет, запустить сервер REPL в
gschem и подключиться к нему в **Emacs** с помощью M-x
**''connect-to-guile''**.