pce*_*pce 10
通过将控制序列发送到终端(xterm,vt-220)或使用ncurses(如mc).
甲ANSI转义序列开头ESC(\ 033八进制)[. ;分开数字.
C清除屏幕并将光标移动到1,1的示例.
#include <stdio.h>
int main()
{
// clear the terminal
printf("\033[2J\033[1;1H");
printf("hello");
}
Run Code Online (Sandbox Code Playgroud)
切换到备用缓冲区并返回(xterm)的示例.
#include <stdio.h>
#include <unistd.h>
int main()
{
printf("\033[?1049h\033[H");
printf("hello\n");
sleep(1);
printf("bye");
sleep(1);
printf("\033[?1049l");
}
Run Code Online (Sandbox Code Playgroud)
Vi翻转到备用屏幕缓冲区,由终端支持.这是使用转义序列实现的.有关详细信息,请参阅此链接.
这些的termcap条目是'ti'进入,'te'退出全屏模式.
正如@Celada在下面指出的那样,硬编码xterm转义序列不是一个好主意™,因为序列根据$ TERM而变化,例如:
xterm-color ti: <Esc> 7 <Esc> [ ? 47 h te: <Esc> [ 2 J <Esc> [ ? 4 7 l <Esc> 8 xterm-256color ti: <Esc> [ ? 1 0 4 9 h te: <Esc> [ ? 1 0 4 9 l
另一方面,xterm支持在非xterm终端中非常广泛.仅支持xterm不太可能导致问题,除了具有异国情调或过时的$ TERM设置的用户.资料来源:我支持这样做的产品.