Эта страница доступна также на следующих языках: English

# Использование REPL в gschem

## Встроенные графические функции REPL в gschem

Поле ввода процедур guile открывается по нажатию клавиши `:` (двоеточие). После этого пользователь может вводить команды в появившемся поле ввода и наблюдать результат выполнения команд в окне журнала.

## REPL в фоновом терминале

В текущей версии репозитория geda-gaf (на 09.02.2016) имеется дополнительная функция вызова REPL в фоновом терминале, запускаемая по нажатию `F` `Shift`+`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`.