Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Go 如何使流程认为输出是到终端的?_Go_Unix_Process - Fatal编程技术网

Go 如何使流程认为输出是到终端的?

Go 如何使流程认为输出是到终端的?,go,unix,process,Go,Unix,Process,我正在编写一个Go程序,该程序通过另一个命令(lolcat)输出命令(用户输入)。但是,当我使用此程序运行vim时,它会抱怨输出不到终端: Vim: Warning: Output is not to a terminal 其他程序也能够检测到输出正在通过管道传输。有没有一种方法可以愚弄所有进程,使其认为它们正在输出到终端 类似于此部分代码的代码是否可能有帮助:?(这不是我的回购协议) 下面是我现在正在使用的相关代码:即使你用这种方式愚弄了vim,如果不是终端,它怎么能呈现自己呢?交互式编辑器

我正在编写一个Go程序,该程序通过另一个命令(
lolcat
)输出命令(用户输入)。但是,当我使用此程序运行
vim
时,它会抱怨输出不到终端:

Vim: Warning: Output is not to a terminal
其他程序也能够检测到输出正在通过管道传输。有没有一种方法可以愚弄所有进程,使其认为它们正在输出到终端

类似于此部分代码的代码是否可能有帮助:?(这不是我的回购协议)


下面是我现在正在使用的相关代码:

即使你用这种方式愚弄了vim,如果不是终端,它怎么能呈现自己呢?交互式编辑器UI不能表示为管道。你想在这里完成什么?。但是@Thomas是正确的:Vim是一个所谓的全屏终端应用程序,也就是说,它假设它有一个C×L字符的屏幕,可以通过发送底层终端设备的特殊控制序列进行完全控制,因此除非您以某种方式将此类序列的“解释器”连接到PTY链路的另一端,“我不知道它将如何工作。@托马斯它确实是通过lolcat表现出来的
vim
不知道输出端到终端。可以使用伪终端。结合“golang”搜索“pseudo terminal”或“pseudo terminal”或“pty”,并检查可用的库或代码示例,例如,