Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以通过Scala REPL shell命令打开交互式vim进程?_Scala_Shell_Vim_Scala Repl - Fatal编程技术网

是否可以通过Scala REPL shell命令打开交互式vim进程?

是否可以通过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中,它也非常令人

我正在探索使用Scala REPL桥接到shell。这主要是通过
导入系统进程来实现的。\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")