我正在探索使用 Scala REPL 桥接 shell。它主要通过 import sys.process._
包实现,我可以使用 "ls"!
来执行 shell.
现在,我想用 "vi"!
来打开一个交互式的 vi 编辑器,这真的很疯狂但很令人兴奋。在REPL中输入cmd后,终端会打开一个init vi canvas。不幸的是,终端没有从我的键盘读取任何输入。
是否可以在 REPL 中打开 vi?
最佳答案
来自 https://stackoverflow.com/a/29972867/1573825 (Java 解决方案):
import java.lang.{Process, ProcessBuilder}
System.out.println("STARTING VI");
val processBuilder = new ProcessBuilder("/usr/bin/vi")
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT)
processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT)
processBuilder.redirectInput(ProcessBuilder.Redirect.INHERIT)
val p = processBuilder.start()
// wait for termination.
p.waitFor()
System.out.println("Exiting VI")
它甚至不会破坏 readline。
关于scala - 是否可以通过 Scala REPL shell 命令打开交互式 vim 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44896739/