在 scala REPL 中执行一行历史记录

Execute a line of history in scala REPL

:history

:h?

例如查看和搜索 REPL 历史记录:

scala> :h? req

19 :require /git/BIDMach/BIDMach.jar
20 :require /git/BIDMat/BIDMat.jar
21 :require /git/BIDMach_Spark/BIDMach_Spark.jar
27 :require /git/BIDMach_Spark/BIDMatHDFS.jar
28 :require /git/BIDMach_Spark/BIDMach_Spark.jar

显示最后 K 个条目:

:history 10

 26  :load /git/BIDMach_Spark/scripts/KMeansLearner.ssc
 27  :require /git/BIDMach_Spark/BIDMatHDFS.jar
 28  :require /git/BIDMach_Spark/BIDMach_Spark.jar
 29  :require /git/BIDMach/BIDMach.jar
 30  :load /git/BIDMach_Spark/scripts/KMeansLearner.ssc
 31  :q
 32  :require /git/BIDMat/BIDMat.jar
 33  :?
 34  :help
 35  :h?

我们如何执行编号的历史条目?

以下已试过

 :!29

 :history 29

 :29

这种支持存在吗?或者只是应该剪切和粘贴?

scala> :help
All commands can be abbreviated, e.g., :he instead of :help.
:edit <id>|<line>        edit history //<-- hmm, this looks interesting
:help [command]          print this summary or command-specific help
:history [num]           show the history (optional num is commands to show)
:h? <string>             search the history
.....//etc.

scala> :hi 6
2524  val predicate: Int => Boolean = _ > 3
2525  import scala.annotation._
2526  List(3,5,7,9,11).filter(_ %3 == 0)
2527  Vector('a','b','c').length
2528  :help
2529  :hi 6

scala> :e 2526
Placing text in recent history.  // follow this with a single up-arrow

scala> List(3,5,7,9,11).filter(_ %3 == 1) // now this can be edited/executed
res6: List[Int] = List(7)

scala> :e predicate
Placing text in recent history.  // up-arrow again

scala> val predicate: Int => Boolean = _ > 4  // edit and execute
predicate: Int => Boolean = <function1>