Clojure有彩色回复吗?

Clojure有彩色回复吗?,clojure,colors,syntax-highlighting,read-eval-print-loop,Clojure,Colors,Syntax Highlighting,Read Eval Print Loop,我想为clojure代码获得一个彩色的REPL,类似于您可以使用Ruby的IRB 是否有user.clj的库或设置提供REPL的自动着色 示例IRB: 一些颜色在VimClojure中有REPL。我不知道有什么方法可以让基本的Clojure REPL(由java-cp Clojure.jar Clojure.main等启动)进行语法突出显示。但是,如果您使用Emacs&SLIME(Clojure社区大部分成员选择的开发环境!),那么您可以使用SLIME REPL highlight语法,如Clo

我想为clojure代码获得一个彩色的REPL,类似于您可以使用Ruby的IRB

是否有user.clj的库或设置提供REPL的自动着色

示例IRB:


一些颜色在VimClojure中有REPL。

我不知道有什么方法可以让基本的Clojure REPL(由java-cp Clojure.jar Clojure.main等启动)进行语法突出显示。但是,如果您使用Emacs&SLIME(Clojure社区大部分成员选择的开发环境!),那么您可以使用SLIME REPL highlight语法,如
Clojure mode
does

首先,您必须从
clojure模式
函数中取出一些代码(定义在
clojure模式.el的顶部):

等等,下次连接SLIME REPL时,您将有
clojure模式
语法高亮显示可用。如果你也使用SLIME来处理Common Lisp,你会想要调整它,这样它就不会试图用CL来做Clojure高亮显示了;它中断的一件事是提示突出显示(将不再突出显示
名称空间>
内容)。我不是一个熟练的
字体锁定
黑客,不管怎么说,所以我就到此为止。:-)

EclipseRepl提供了完整的语法着色(包括彩虹括号着色)

我相信它在引擎盖下使用。

  • 安装Emacs 24
  • 安装
  • M-x软件包安装
    ->
    初学者工具包lisp
  • 添加到init.el:
    (添加钩子'slime repl mode hook'clojure mode字体锁定设置)
  • 安装
  • 打开Clojure项目并
    M-x Clojure插孔

试试克里斯·格兰杰的《光桌游乐场》。它是更丰富的多语言IDE的第一部分

它有一个颜色Clojure REPL,可以对整个代码块进行实时计算和显示

您可以在此处看到项目的更高级别视图:


如果您只想给提示上色,并且正在使用(您应该使用),则可以使用
:repl options
和:

:repl选项{:提示符(fn[ns]
(str“\033[1;32m”
ns“=>”
“\033[0m”)}
参考资料:

用户可以通过在其配置中添加以下内容来获得彩色REPL:

(setq cider-repl-use-clojure-font-lock t)

要使REPL输出彩色化,请尝试


这里的聚会已经很晚了,但是你可以通过使用Leiningen插件(它也支持彩色stacktraces和漂亮打印的测试输出)或者通过添加到你的Leiningen插件列表中来实现这一点


示例Ultra REPL:

如果您是Intellij用户,那么“卓越”是一个不错的选择,它提供了您可以定制的漂亮颜色:


您可以尝试LightTable,它可以让您选择功能并立即运行。

哦,顺便说一句,这真的用clojure模式高亮显示取代了SLIME REPL高亮显示…使用此选项时,通常的REPL高亮显示可能会遗漏一些有用的内容。希望在某个时候可以对其进行改进,以减少这种情况权衡。不幸的是,我不是Emacs用户,但这看起来很酷。@thnetos:谢谢!@这可能涉及到的所有人:我在这里把代码放在一个要点中:--当前版本包括两个
defadvice
s来进行提示,
*out*
上的打印输出会像通常在SLIME REPL中一样突出显示,而其他所有内容都仍然存在获取clojure模式突出显示。此代码的最新版本现在是的新项目的一部分。CIDER的REPL具有内置的着色支持(尽管它的工作方式与此不同,因为表达式在计算后会锁定字体)。太好了!我怎么才能为SLIME REPL获得这个呢?@Zolomon-见下面我的答案。类似的问题:这个应该更新为使用,而不是swank clojureTo要使它适用于您的用户而不是单个项目,请将它添加到
~/.lein/profiles.clj
将它放入
~/.lein/profiles.clj
中,用于全局彩色REPL:
{:user{:repl options{:prompt(fn[ns](str“\033[1;32m”ns“=>”\033[0m”)}}
将其添加到
~/.lein/profiles.clj
时,将配置放在
:repl
配置文件中,而不是
:user
。因此结构是
{:repl>{:repl options{:prompt…}}
。这确保只为
lein repl
定义配置,而不是为其他子命令(如
lein test
)定义配置。是的,它确实使用了nRepl,但采用了自定义的着色策略,当然可以配置(contributor@here)伟大的项目,但可悲的是现在没有活动
(add-hook 'slime-repl-mode-hook
          (lambda ()
            (font-lock-mode nil)
            (clojure-font-lock-setup)
            (font-lock-mode t)))
(setq cider-repl-use-clojure-font-lock t)