在sbt中重新编译时自动清除屏幕

在sbt中重新编译时自动清除屏幕,sbt,Sbt,我正在将sbt与sbt revolver插件一起使用,我想在重新编译项目(~重新启动)时清除终端屏幕(^L)。如何做到这一点?您可以定义新命令clear,该命令将使用jline清除屏幕。Sbt在内部使用jline,因此您不必包含任何额外的依赖项 build.sbt 现在您可以像这样运行编译~;清楚的编译。这将触发清除控制台,然后在每次文件更改时编译(假设这是您想要的)。在Twitter上,Paul Phillips建议使用以下方法: alias cc = ~ ;eval "\u001B[2J\u

我正在将sbt与sbt revolver插件一起使用,我想在重新编译项目(~重新启动)时清除终端屏幕(^L)。如何做到这一点?

您可以定义新命令
clear
,该命令将使用
jline
清除屏幕。Sbt在内部使用
jline
,因此您不必包含任何额外的依赖项

build.sbt

现在您可以像这样运行编译
~;清楚的编译
。这将触发清除控制台,然后在每次文件更改时编译(假设这是您想要的)。

在Twitter上,Paul Phillips建议使用以下方法:

alias cc = ~ ;eval "\u001B[2J\u001B[0\u003B0H" ;compile

来源:

另一个基于@SethTisue答案的解决方案:

alias clearScreen=eval "\u001B[2J\u001B[0\u003B0H"
该行应添加到
~/.sbtrc
,以便sbt了解“clearScreen”命令。您可以使用
~;透明屏幕;编译


或者制作一个额外的别名,如
别名cc=~;透明屏幕;编译

当您在连续模式下执行某些操作时,这会特别有帮助,例如编译:

maxErrors := 5
triggeredMessage := Watched.clearWhenTriggered

此选项从0.13.7起生效。第二行在每个命令运行之前清除屏幕。第一行限制了错误的数量。使用此配置,您只有一个屏幕可以处理全部错误。显然,您可以根据sbt窗口调整maxErrors。

这是一个很好的解决方案,但在Emacs shell中似乎不起作用。也许jline在这方面没有作用。
maxErrors := 5
triggeredMessage := Watched.clearWhenTriggered