ti-enxame.com

Posso limpar o repl?

Joguei com muito código em um console de substituição. Como posso limpá-lo? Eu gostaria de um novo sem reiniciá-lo. Isso pode ser feito?

47
Belun

Se você deseja limpar o espaço para nome atual de todas as variáveis ​​e funções temporárias declaradas, pode usar este liner (ou fazer uma função):

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

ou

(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 ... 

Ele não pretende fornecer um espaço de nome limpo, apenas um com menos lixo indesejado que geralmente se acumula em uma sessão de substituição típica.

Use com cuidado: não puxe o tapete por baixo dos pés!

50
Peter Tillemans

Se você estiver executando o repl através de uma janela de terminal (por exemplo: Terminal.app no ​​MacOS ou xterm/aterm/urxvt etc. no linux), poderá digitar Control-L e deverá limpar a janela do terminal e dar-lhe um novo prompt de repl. No entanto, todas as macros/átomos que você definiu anteriormente ainda estarão na memória, portanto isso é apenas uma limpeza "cosmética".

22
Brian Gianforcaro

No EMACS/slime, REPLs C-c C-o limpa a última saída (caso você tenha digitado algo que deu uma resposta muito longa) C-c M-o limpa tudo

Nos terminais GNOME, você tem a opção de menu Terminal/Reset and Clear

18
John Lawrence Aspden

O atalho para limpar todo o buffer: C-uC-cC-o

O atalho para limpar a última saída: C-cC-o

Observe que o caminho antigo era: C-cM-o

Além disso, cider-repl-clear-buffer (Que está vinculado a C-ENTERs-c na minha máquina)

5
nha

Se você estiver usando o Emacs + nREPL , poderá:

  • Corre Mxnrepl-clear-buffer ou
  • Corre CcMo

Se a ligação de teclas não estiver ativada, execute Mxnrepl-interaction-mode para habilitá-lo. Você pode encontrar outros atalhos úteis em nrepl.el e/ou personalizar as combinações de teclas para atender às suas necessidades.

Nota: você pode encontrar todas as ligações de teclas de nREPL em seu sistema executando M-x vnrepl-mode-map e seguindo o nrepl.el link.

4
a2ndrade

Eu uso o comando Emacs cider-repl-clear-buffer através da M-x. Pode-se também usar cider-repl-clear-output com um argumento de prefixo: C-u C-c C-o.

2
Dave Liepmann

Para usuários do Cursive IDE plugin para IntelliJ IDEA que acabam aqui, como eu:

Você pode "cosmeticamente" limpar o REPL (mantendo seus símbolos definidos etc.) clicando neste ícone na parte superior do quadro REPL:

Clear REPL icon

Não há ligação de teclas padrão para isso, mas você pode facilmente adicionar uma abrindo suas preferências, navegando até Keymap> Plugins> Cursive e adicionando uma ligação para "Limpar saída para o REPL atual".

Como alternativa, você pode clicar com o botão direito do mouse no editor e acessar "Limpar saída para o REPL atual" através dos comandos REPL.

0
fordy

Depende do que você quer dizer com 'limpo'. Para remover todos os espaços para nome em um 'pacote', você pode usar:

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