Можно ли почистить репл? - PullRequest
       31

Можно ли почистить репл?

47 голосов
/ 03 сентября 2010

Я играл с большим количеством кода в консоли repl, как я могу это очистить? Я хотел бы свежий, не перезапуская его. Это может быть сделано?

Ответы [ 8 ]

50 голосов
/ 03 сентября 2010

Если вы хотите очистить текущее пространство имен от всех временных переменных и функций, которые вы объявили, вы можете использовать этот один вкладыш (или сделать из него функцию):

(map #(ns-unmap *ns* %) (keys (ns-interns *ns*)))

или

(ns myutil)
(defn ns-clean
       "Remove all internal mappings from a given name space or the current one if no parameter given."
   ([] (ns-clean *ns*)) 
   ([ns] (map #(ns-unmap ns %) (keys (ns-interns ns)))))
(ns mytest)

... make loads of junk ...

(myutil/ns-clean)

... great!!! I can now make all new junk ... 

Он не претендует на то, чтобы дать вам скрипучее чистое пространство имен, только одно с меньшим количеством мусора, которое обычно накапливается в типичном сеансе repl.

Используйте с осторожностью: не вынимайте коврик из-под ног!

21 голосов
/ 03 сентября 2010

Если вы запускаете repl через окно терминала (например: Terminal.app в MacOS или xterm / aterm / urxvt и т. Д. В Linux), тогда вы можете набрать Control-L , и он должен очистить терминал окно и даст вам новый ответ Repl. Однако все макросы / атомы, которые вы ранее определили, все еще будут в памяти, так что это всего лишь «косметическая» очистка.

18 голосов
/ 06 сентября 2010

В ответах EMACS / slime Cc Co очищает последний вывод (если вы набрали что-то, что дало очень длинный ответ) Cc Mo очищает все это

В терминалах GNOME у вас естьпункт меню Терминал / Сброс и Очистить

5 голосов
/ 16 декабря 2015

Сокращение для очистки всего буфера: C - u C - c C - o

Ярлык для очистки последнего вывода: C - c C - o

Обратите внимание, старый способ был: C - c M - o

Также cider-repl-clear-buffer (что связано с C - ENTER s - c на моей машине)

4 голосов
/ 26 мая 2013

Если вы используете Emacs + nREPL, вы можете:

  • Выполнить M x nrepl-clear-buffer или
  • Прогон C c M o

Если привязка клавиш не включена, запустите M x nrepl-interaction-mode, чтобы включить ее.Вы можете найти другие полезные сочетания клавиш в nrepl.el и / или настроить привязки клавиш в соответствии с вашими потребностями.

Примечание: вы можете найти все привязки клавиш nREPLв вашей системе, запустив M-x v nrepl-mode-map и перейдя по ссылке nrepl.el.

2 голосов
/ 23 марта 2016

Я использую команду Emacs cider-repl-clear-buffer через Mx .Можно также использовать cider-repl-clear-output с префиксным аргументом: Cu Cc Co .

0 голосов
/ 24 июля 2018

Для пользователей плагина Cursive IDE для IntelliJ IDEA, которые попали сюда, как я:

Вы можете "косметически" очистить REPL (с сохранением символов защиты и т. Д.), Щелкнув этот значок в верхней части рамки REPL:

Clear REPL icon

Для этого нет привязки ключа по умолчанию, но вы можете легко добавить ее, открыв настройки, перейдя в «Карта ключей»> «Подключаемые модули»> «Курсив» и добавив привязку для «Очистить вывод для текущего REPL».

В качестве альтернативы, вы можете щелкнуть правой кнопкой мыши в редакторе и получить доступ к «Очистить вывод для текущего REPL» с помощью команд REPL.

0 голосов
/ 08 февраля 2017

Это зависит от того, что вы подразумеваете под «чистым». Чтобы удалить все пространства имен внутри «пакета», вы можете использовать:

(mapv remove-ns 
  (map symbol 
    (filter #(.startsWith % "org.mycompany") 
      (map str (all-ns)))))
...