从 Haskell 启动程序(例如:Vim)

Launching Programs (example: Vim) from Haskell

使用 Turtle shell 脚本库我正在尝试启动一个程序,即:

shell "vim" empty

问题是这会产生警告 Warning: Input is not from a terminal 并导致 Vim 在最终启动之前滞后几秒钟。

问题:

  1. shell 是从 haskell 启动外部程序的最佳 Turtle 函数吗?
  2. 如果是这样,有什么方法可以解决上述错误?

您可以尝试手动设置 I/O 到 vty。例如。在 bash 中:vim < $TTY > $TTY。根据警告,我猜 turtle 正在使用它自己的文件描述符在后台执行此操作,因此您应该能够手动设置这些重定向(或者只使用我通过 shell 给出的命令)。您只需要确保周围有一个 TTY 环境变量。

您想使用 process library, specifically createProcess or runProcess 中的函数。

关于这个问题的相关龟线程here

Example usage.