我正在使用带有sbt-revolver插件的sbt,我想在重新编译项目时重新编译终端屏幕(^ L)(〜重新启动)。怎么办呢?
答案 0 :(得分:4)
您可以定义新命令clear
,它将使用jline
清除屏幕。 Sbt在内部使用jline
,因此您不必包含任何额外的依赖项。
build.sbt
def clearConsoleCommand = Command.command("clear") { state =>
val cr = new jline.console.ConsoleReader()
cr.clearScreen
state
}
val root = project.in(file(".")).settings(commands += clearConsoleCommand)
现在你可以运行你的编译~;clear;compile
。这将触发清除控制台,然后在每次文件更改时编译(假设这是你想要的)。
答案 1 :(得分:3)
另一种解决方案,基于@SethTisue回答:
alias clearScreen=eval "\u001B[2J\u001B[0\u003B0H"
此行应添加到~/.sbtrc
,以便sbt知道“clearScreen”命令。您可以使用~;clearScreen;compile
或制作其他别名,例如alias cc=~;clearScreen;compile
答案 2 :(得分:3)
当你在连续模式下做某事时,这会特别有用,ala`comped:
maxErrors := 5
triggeredMessage := Watched.clearWhenTriggered
这适用于0.13.7。第二行在每个命令运行之前清除屏幕。第一行限制了错误的数量。使用此配置,您只需要一个完整的错误屏幕即可完成。显然可以根据你的sbt窗口调整maxErrors。
答案 3 :(得分:2)
在推特上,Paul Phillips建议采用这种方法:
alias cc = ~ ;eval "\u001B[2J\u001B[0\u003B0H" ;compile