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

标签 scala shell vim scala-repl

我正在探索使用 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/

相关文章:

linux - 如何在没有提示的情况下执行 ssh-keygen

bash - 一段时间后 bash shell 中的退格键行为变为 ^H

vim - 我不能与 NERDCommenter 一起工作

regex - 向符合某些条件的数字添加常量

vim - 与 GUI 文本编辑器相比,Vim/Emacs 提供了哪些具体的生产力提升?

scala.tools.nsc.interpreter 内存泄漏

scala - 使用 Gatling 进行调试 - 如果状态为 500,则打印 ln

scala - 如何使用@See scaladoc?

scala - 使用 Slick 3 的动态排序

linux - 从文件夹中的所有文件中提取 200 行