c - 在 ncurses 中滚动数据

标签 c ncurses curses

我正在 ncurses 中开发一个小型文本编辑器,目的是了解有关该库的更多信息。第一个挑战是实现适当的可滚动文本缓冲区,同时保留编辑功能。我创建了一个光标结构,其中包含屏幕坐标和缓冲区坐标。当您移动光标时,x 和 y 被限制为 LINES 和 COLS 最大值。然而,缓冲区坐标受到文本文件的限制(大小和行大小)。

这很有效,但我想知道是否有更好的方法来做到这一点。现在,每个光标移动操作都会导致对两个坐标系的修改。也许有一种方法可以在坐标之间进行转换并只保留一个(最好是缓冲区坐标)?

最佳答案

您尝试过使用垫子吗?由于窗口不能大于终端本身,否则当它越过边缘边界时,数据将丢失。 pad 用于通过使用 newpad 来显示更大的数据。 pad 可以是系统内存可用的任何长度;通过窗口subpad查看,该窗口在指定位置显示pad的内容。

关于c - 在 ncurses 中滚动数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35210238/

相关文章:

unicode - 诅咒 - 某些表情符号(标志)使终端输出变形

python - 如何禁用控制字符的 shell 拦截?

python 诅咒 nodelay getch 没有响应

c - 尝试找到 middel 但程序崩溃了 c 中带有两个指针的链表

c++ - 一个简单的win32多线程代码。这行得通吗?

c - 是否可以在ncurses库中绘制如下图表并实时更新?

linux - 在 Linux 中使用 CLion 通过外部终端运行 ncurses 程序

c - 使用 pthread 时出现 SegFault

比较 2 个文件中的子字符串

dialog - ncurses 对话框显示 qqqq/xxxx 行而不是行