我一直试图找到某种点文件来放入Scala REPL设置和自定义函数。
特别是我有兴趣传递像-Dscala.color
这样的标志(启用语法高亮),以及覆盖结果字符串截断等设置:
scala> :power
scala> vals.isettings.maxPrintString = 10000
将这些设置应用于简单的Scala REPL会话以及sbt控制台会话会很不错。
Scala是否存在这样的中央配置位置?
答案 0 :(得分:4)
穷人的解决方案:为自己设置一个alias
alias myScala='scala -Dscala.repl.axPrintString = 10000'
答案 1 :(得分:4)
也许您可以使用现代化的Scala REPL:
答案 2 :(得分:2)
如上所述here ~/.sbt/0.13/global.sbt
是sbt的全局配置文件。您可以在此处更改全局设置,这可能不会影响REPL但应该与SBT控制台一起使用
答案 3 :(得分:1)
你主要询问有关属性设置的问题,考虑加载一个定义文件,这有点超出了 - 并且对Windows没什么帮助 - 但我想我会分享以防它有用:
我使用保存为~/bin/scala
的包装器脚本来设置配置属性并加载一些实用程序功能:
#!/bin/sh
# The scala REPL doesn't have any config file, so this wrapper serves to set
# some property values and load an init file of utilities when run without
# arguments to enter REPL mode.
#
# If there are arguments, just assume we're running a .scala file in script
# mode, a class or jar, etc., and execute normally.
SCALA=${SCALA:-/usr/local/bin/scala}
if [ "$#" -eq 0 ] && [ -r ~/.config/scala/replinit.scala ]; then
exec "$SCALA" -i ~/.config/scala/replinit.scala -Dscala.color
else
exec "$SCALA" "$@"
fi
如果您有时使用Ammonite REPL,正如另一个答案所示,load
可以~/.ammonite/predef.scala
分享实用程序定义:
try load.exec(ammonite.ops.home/".config"/'scala/"replinit.scala")
catch { case _: Exception => println("=== replrc not loaded! ===") }
我不确定自动加载sbt console
的初始化文件的方法,但是Seth Tisue关于initialize
设置的评论对属性有帮助,但使用的是<{1}}值的:load
命令似乎不起作用。