首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Shake分配PTY?

如何使用Shake分配PTY?
EN

Stack Overflow用户
提问于 2021-08-29 19:50:22
回答 1查看 47关注 0票数 1

我正在尝试从我的构建脚本交互地运行一个命令:

代码语言:javascript
复制
#!/usr/bin/env stack
{- stack
script
--resolver lts-18.8
--ghc-options -Wall
-}
import Development.Shake

main :: IO ()
main = shakeArgs shakeOptions $ do
  phony "cfg" $ do
    command_ [] "vim" []

但它不起作用。我想我需要分配一个终端才能交互地运行vim。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-30 08:08:03

用于运行命令(commandcmd等)的Shake函数是为无需用户交互即可运行的批处理命令而设计的。虽然你可以做一些事情来使它们与Vim之类的东西更兼容(例如InheritStdin),但Shake的某些方面可能会使事情变得更加困难(例如捕获stderr,这可能会导致内存泄漏)。

幸运的是,Shake可以和System.Process中的函数一起工作,所以不用调用command,你可以这样写:

代码语言:javascript
复制
liftIO $ System.Process.createProcess $ System.Process.shell "vim"

createProcess记录了许多类型的与流程相关的设置,因此可以对其进行自定义以使其正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68976405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档