我正在使用ncurses中的一个小文本编辑器,目的是了解有关该库的更多信息。首要挑战之一是实现适当的可滚动文本缓冲区,保留编辑功能。我创建了一个光标结构,包含屏幕坐标和缓冲区坐标。移动光标时,x和y被约束为LINES和COLS最大值。但是,缓冲区坐标受限于文本文件的大小(大小和行大小)。
这很好用,但我想知道是否有更好的方法。现在,每个光标移动操作都会导致对两个坐标系的修改。也许有一种方法可以在坐标之间进行转换,只保留一个(最好是缓冲区)?
答案 0 :(得分:2)
你尝试过使用过垫子吗?由于窗口不能大于终端本身,否则当通过边缘边界时数据会丢失。垫片用于通过 newpad
显示更大的数据。垫可以是系统存储器可用的任何长度;通过窗口 subpad
查看,该窗口显示指定位置的打击垫内容。