распечатать вывод исполнения в cider repl

Мне интересно, есть ли способ получить вывод текущего выполнения в emacs cider при использовании cider-connect.

Например :

  • Я запускаю lein repl в каталоге проекта

  • затем подключитесь к нему в emacs, используя cider-connect.

Теперь предположим, что у меня есть (println "cider is amazing by the way") в коде одного из моих кольцевых обработчиков, это будет напечатано только в консоли, которую я запустил lein repl, когда будет сделан запрос.

Как я могу иметь этот вывод также в моем буфере nrepl?


person nha    schedule 04.08.2015    source источник


Ответы (2)


К сожалению, я подозреваю, что вы не можете сделать это так, как вы описываете. Вывод идет прямо на консоль этого устройства, а не через что-либо, связанное с nrepl. Это также имеет смысл, если учесть, что nrepl часто даже не работает на одном компьютере. («n» в nrepl означает «сеть»).

Возможно, вы можете сделать так, чтобы этот вывод был teed в файле, откуда вы можете его получить? Затем вы можете запустить поток в вашем буфере nrepl, который cated этот файл. Или иметь буфер в emacs, который следит за удаленным файлом.

person Arthur Ulfeldt    schedule 04.08.2015
comment
Спасибо, Артур, тогда есть ли другой способ, может быть, открыть nrepl в коде Clojure? Цель состоит в том, чтобы получить вывод в Emacs. Если мне нужно изменить свой рабочий процесс, меня это устраивает :) И вы правы, я использую его на другой (виртуальной) машине. - person nha; 05.08.2015
comment
По другим причинам (работа с другими, скорость и т. д.) мой предпочтительный метод — запустить emacs на удаленной системе в сеансе tmux, затем несколько человек могут подключиться (mosh — прекрасное дополнение к ssh), подключить tmux и получить общий emacs. . Затем я могу также подключиться из сеанса emacs, запущенного непосредственно на моем ноутбуке, хотя это происходит реже. это не прямой ответ, просто еще один способ работы, который хорошо подходит для некоторых. - person Arthur Ulfeldt; 05.08.2015
comment
Что ж, это интересно, спасибо, что поделились этим. Пожалуйста, поправьте меня, если я ошибаюсь, это означает наличие ванильного emacs? Которые кажутся совместимыми с тем, чтобы делиться ими с другими. - person nha; 05.08.2015
comment
vanila emacs использовать бесполезно для всех (огнестойкий костюм) это действительно, в этом случае, становится вопросом создания сообщества с вашей командой и совместной работы. Поэтому я подозреваю, что это выходит за рамки комментария или ответа SO. PS: мы проверяем нашу конфигурацию на github, моя находится здесь: github.com/thearthur/arthur- s-emacs-config - person Arthur Ulfeldt; 07.08.2015

Если вы начнете leiningen через cider-jack-in, вы должны получить вывод в буфере repl.

Одним из способов использования этого с удаленной настройкой может быть вызов C-u M-x cider-jack-in и использование специализированной серверной команды, которая по существу вызовет команду lein repl (скажем, по ssh) на удаленной машине — я не проверял, будет ли это работать на самом деле, но Не вижу причин, почему этого не должно быть. Если вы можете получить доступ к коду через бродягу, не должно иметь большого значения, является ли код удаленным или нет.

person schaueho    schedule 05.08.2015
comment
Ну, даже с cider-jack-in я не получаю вывод для нужных мне пространств имен. Я получаю его для команд, которые я набираю в ответе, но не для всех сообщений. - person nha; 09.08.2015