Vim"如何控制"终端并允许它用作可修改的缓冲区?

时间:2018-01-18 00:15:38

标签: c++ linux vim terminal

Vim"如何控制"终端并允许它用作可修改的缓冲区?

创建我自己的程序有多难,可以使用像c ++这样的语言(在linux中)任意修改终端使用的字符缓冲区?

1 个答案:

答案 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