Vim:警告:输出不到终端
Vim: Warning: Output not to a terminal
我正在运行一个运行python脚本的C++二进制文件。我通过以下方式执行此操作
stream = popen(cmd.c_str(), "r");
if (stream) {
while (!feof(stream))
if (fgets(buffer, max_buffer, stream) != NULL) data.append(buffer);
status = pclose(stream);
}
这个python脚本还使用子进程运行一些shell命令
subprocess.check_call(arg_list)
突然间,我开始收到诸如"Vim:警告:输出不到终端"之类的错误,并且C++二进制挂起。
修复它的最简单方法是什么?
popen
调用将读取子进程写入其标准输出的任何内容。 其中一些可能很有用(例如状态消息)。 你不会从 vim 的标准输出中获得有用的结果,因为它将是部分转义序列(用于移动光标、更改颜色)。
如果可以修改脚本以使其专门处理 vim,则有一个修复方法:修改运行 vim 的命令,以便它们重定向到 /dev/tty
。 这将更改如下所示的命令字符串
vim filename
自
vim filename >/dev/tty
您可以尝试使用
export TERM=vt100
在调用 Perl 之前或作为每个 Unix 子进程中的第一个命令。
相关文章:
- 如何在不丢失输出的情况下杀死/停止终端中正在运行的进程?
- 输出 c++ 窗口 wstring 日志在终端中正确
- 在集成终端上运行vscode lldb调试器时,如何获取程序的输出?
- CUDA内核printf()在终端中不产生输出,在探查器中工作
- 为什么我的代码在终端中没有输出任何内容.开始新行没有错误
- 如何从 bash 脚本捕获终端输出并将其显示在我的 Qt UI 中?
- 如何在不将其连接到终端的情况下运行'screen',以便我可以在C++ (qt) 应用程序中捕获输出?
- 终端命令输出到 CPP 中的数组
- VisualStudio代码C 终端用于输出
- 在C++中使用QProcess重定向gnome终端的输出
- 可以在没有终端的 Unix 进程上写入标准输出
- Linux终端中C++的奇怪输出
- Vim:警告:输出不到终端
- 输出字符串使用 C++ 覆盖 Linux 终端上的最后一个字符串
- 如何直接操作终端输出缓冲区
- C++程序,控制台/终端输出。如何实现"updating text"
- Netbeans c++程序没有终端输出
- 将终端输出的codesign-dvvv读取到cpp程序中
- 使用C++ - 问题的基本终端输出
- 我应该如何将固定进度条添加到生成终端输出的C++程序中(在 Linux 中)