Vim"如何控制"终端并允许它用作可修改的缓冲区?
创建我自己的程序有多难,可以使用像c ++这样的语言(在linux中)任意修改终端使用的字符缓冲区?
答案 0 :(得分:1)
基本上输出缓冲区只是一堆字符。
将终端用作VIM的最基本方法是发出退格。 终端中的退格是非破坏性的,因此它们只是将光标移动到左侧。
所以你可以发射退格,直到你发现自己在正确的位置。
如果您的终端支持ANSI转义序列(特殊文本序列),您可以使用\033[number;numberH
跳转,例如\033[3;3H
将跳转到第3行和第3行,然后您可以打印一些内容。
在 C 中:
int row = 3;
int col = 3;
printf("\033[%d;%dH", row, col);
printf("Hello world");
当然并非所有终端都支持ANSI转义序列。
这就是您拥有ncurses库和move(row,col)
功能的原因。
您也可以尝试执行原生功能
我不知道linux头文件中有什么内容,但在Windows中,winapi.h
提供了使用缓冲区的有效方法:SetConsoleCursorPosition