我正在 ncurses 中开发一个小型文本编辑器,目的是了解有关该库的更多信息。第一个挑战是实现适当的可滚动文本缓冲区,同时保留编辑功能。我创建了一个光标结构,其中包含屏幕坐标和缓冲区坐标。当您移动光标时,x 和 y 被限制为 LINES 和 COLS 最大值。然而,缓冲区坐标受到文本文件的限制(大小和行大小)。
这很有效,但我想知道是否有更好的方法来做到这一点。现在,每个光标移动操作都会导致对两个坐标系的修改。也许有一种方法可以在坐标之间进行转换并只保留一个(最好是缓冲区坐标)?
最佳答案
您尝试过使用垫子吗?由于窗口不能大于终端本身,否则当它越过边缘边界时,数据将丢失。 pad 用于通过使用 newpad
来显示更大的数据。 pad 可以是系统内存可用的任何长度;通过窗口subpad
查看,该窗口在指定位置显示pad的内容。
关于c - 在 ncurses 中滚动数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35210238/