1

我正在学习 termcap 库。我正在尝试在终端中做一个行编辑器。我有一个可以在线移动的光标。一条线一切都很好。但是,如果我的行大于终端宽度,则无法使用le命令将光标从第二行返回到第一行(将光标向左移动)。我需要设置bw标志来做到这一点。函数tgetflag()只返回一个值。我认为我需要使用tcsetsttr()但找不到正确的标志宏来设置此标志。如何设置bw标志?

struct termios  stored_settings;
struct termios  new_settings;

tcgetattr(0, &stored_settings);
new_settings = stored_settings;
new_settings.c_lflag &= (~ICANON & ~ECHO);
new_settings.c_cc[VTIME] = 0;
new_settings.c_cc[VMIN] = 1;
tcsetattr(0, TCSANOW, &new_settings);
4

1 回答 1

0

如何设置bw标志?

auto_left_margin( bw) 是终端功能之一,即它只指示是否cub1从第 0 列换行到最后一列。您无法更改终端的这种行为,您只能查询它并适当地调整您的程序,例如通过将一条线定位到其末端并使用其他功能。

于 2019-07-10T11:30:09.310 回答