是否可以通过Scala REPL shell命令打开交互式vim进程?
我正在探索使用Scala REPL桥接到shell。这主要是通过是否可以通过Scala REPL shell命令打开交互式vim进程?,scala,shell,vim,scala-repl,Scala,Shell,Vim,Scala Repl,我正在探索使用Scala REPL桥接到shell。这主要是通过导入系统进程来实现的。\ucode>包,我可以使用“ls”执行shell。 现在,我想使用“vi”打开一个交互式vi编辑器,这真的很疯狂,但非常令人兴奋。在REPL中输入cmd后,终端打开init vi画布。不幸的是,终端没有从我的键盘读取任何输入 是否可以在REPL中打开vi?来自(java解决方案): 它甚至不会损坏readline。我认为标准的REPL不能做到这一点,但它在中应该很容易。@jwvh,即使在ssh中,它也非常令人
导入系统进程来实现的。\ucode>包,我可以使用“ls”代码>执行shell。
现在,我想使用“vi”代码>打开一个交互式vi编辑器,这真的很疯狂,但非常令人兴奋。在REPL中输入cmd后,终端打开init vi画布。不幸的是,终端没有从我的键盘读取任何输入
是否可以在REPL中打开vi?来自(java解决方案):
它甚至不会损坏readline。我认为标准的REPL不能做到这一点,但它在中应该很容易。@jwvh,即使在ssh
中,它也非常令人惊讶。这是我想要的:%(“bash”、“-c”、“sshpass-p'123456'sshlorance@192.168.1.230-t vi”“”
。在amm工作得很好!!!这可以简化为%sshpass(“-p”、“123456”、“ssh”lorance@192.168.1.230“,”-t“vi”)
当然,%vim“foo.txt”
也应该可以工作。或%python
打开python REPL、%sbt
等。
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")