C++程序控制终端窗口
C++ Program taking control of terminal window
在终端中使用vim时,它基本上会清空终端的窗口,并为您提供一个新的窗口来开始编码,但当您退出vim时仍会列出终端的上一个输出。如何清除终端,使其仅输出程序的输出,但在进程结束后返回正常状态?(在linux中,fedora)
在底层,您向终端程序发送一组控制字符,告诉它该做什么。这可能有点太复杂,无法手动管理。
因此,您可能想看看像ncurses这样的控制台库,它可以为您管理所有这些复杂性。
特别是关于程序退出后神奇出现的先前内容,这实际上是vim正在利用的xterm功能,也是大多数现代终端支持的功能。它被称为"替代屏幕"或简称为"替代屏"。本质上,你告诉终端程序"好吧,现在切换到一个全新的屏幕,我们稍后会回到另一个屏幕"。
切换到备用屏幕的命令通常是E[?47h
,而切换回的命令是E[?47l
。为了好玩,试试这个:
echo -e " 33[?47h"
然后切换回:
echo -e " 33[?47l"
或者,对于一个更完整的解决方案,它更少地依赖于你的shell来设置正确的东西(这些是vim通常使用的序列):
echo -e " 337 33[?47h" # Save cursor position & switch to alternate screen
# do whatever
#Clear alternate screen, switch back to primary, restore cursor
echo -e " 33[2J 33[?47l 338"
您可以键入"clear",或者在程序中添加一个系统命令来调用"clear"。此外,如果您不知道,您可以从vim内部运行系统命令,这样您就不必退出并键入clear。你也可以从vim内部编译和运行你的程序,例如->
:!clear
:!make
:!./programName
此外,我从来没有使用过这种技术,但我相信你可以让vim通过使用:set terminal
调用一个新的终端
相关文章:
- 如何在linux终端中同时编译和运行c++代码
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 用于窗口的 HID 终端
- 在 OSX 上打开 SDL 窗口时不要打开终端窗口
- 输出 c++ 窗口 wstring 日志在终端中正确
- 如何在C++中打开多个独立的终端窗口
- 我想在终端窗口中运行我的 CLion 程序
- 如何设置终端窗口的固定尺寸
- 如何在新的终端窗口中启动 ./a.out
- C++程序控制终端窗口
- 终端以在C++中打开弹出窗口
- SDL2:如何提高窗口(在主叫终端的顶部)
- C++代码在 vim 中打开文件,以便在 Xcode 的终端窗口中进行编辑
- 从终端运行C++程序.在同一终端窗口中获取输出
- 河内塔算法无需打印任何内容到终端窗口
- 我可以制作一个无法打开终端窗口的 OS X Glut 应用程序吗?
- 在c++中强制打开一个设置大小的终端窗口
- 如何在mac osx中隐藏终端窗口
- CLion cout 打开命令提示符窗口,而不是使用 CLion 的终端