Scala REPL в Emacs - PullRequest
       16

Scala REPL в Emacs

14 голосов
/ 20 января 2012

Мне нравится заниматься разработкой Scala в Emacs, и время от времени я использую REPL для тестирования фрагментов кода или для загрузки и тестирования некоторого кода, который я только что написал. Я использую Scala 2.9.1, и я заметил, что, когда я открываю REPL в терминальном буфере, вещи существенно ломаются. В частности, я не могу удалить символы из текущей строки и не могу переместить курсор назад на текущей строке. Это очень расстраивает, так как всякий раз, когда я что-то неправильно набираю, я должен начать команду заново. Мне было интересно, есть ли у кого-то еще эта проблема с использованием Scala REPL под Emacs, и есть ли у кого-нибудь потенциальное решение.

Ответы [ 3 ]

9 голосов
/ 20 января 2012

Я считаю, что rlwrap (оболочка readline) хорошо работает с ansi-term и scala в emacs.Просто назовите «rlwrap scala», и у вас будет обычное редактирование строк bash, а также история, работающая правильно.В качестве бонуса ваша история будет охватывать несколько вызовов scala, поэтому вы не потеряете все, что набрали, после выхода из Scala REPL.

Если rlwrap не работает для вас, просто переключитесь на строку-Режим ansi-term (Cx Cj по умолчанию) позволит вам использовать редактирование в стиле emacs в строке, но без таких тонкостей оболочки, как история и завершение.

Ensime уже упоминался, поэтому я будуво-вторых, это отличный вариант, если вы не возражаете против установки.

8 голосов
/ 20 января 2012

Вы можете установить ENSIME и , следуя инструкциям . Я не знаю, как вы вызываете REPL, но REPL, вызванный из ENSIME, работает (он позволяет переместить курсор назад и удалить символы, я проверил).

0 голосов
/ 13 апреля 2018

Вы можете попробовать использовать аммонитовый репл , amm.Я могу подтвердить завершение работы с вкладками в emacs ansi-term.Это верно для режима по умолчанию (на основе stty) или , вы можете использовать JLine3 с amm.Обратите внимание, что ответ Dotty (предварительный Scala 3), dotr, также основан на amm и также имеет рабочее завершение табуляции в ansi-term.

...