ncurses中是否有一个函数添加一行并将光标后的文本移动到该新行?我现在正在使用insertln()并且将整个当前行向下移动,但是当我在一行中间点击时,我希望行为更接近vi。
谢谢!
答案 0 :(得分:2)
您可以使用instr
阅读当前窗口中的文字,然后使用clrtoeol
和addstr
将其删除,以将文字放入新位置。 (根据需要添加w
和/或mv
前缀。
请注意,真正的文本编辑器执行"插入换行符"不仅仅是在屏幕线上运行。它将在文件缓冲区中的逻辑行上运行,可能会影响多个屏幕行(如果文件中的行足够大以进行换行)。如果您不将自己的逻辑行结构与您在屏幕上显示的内容分开,那么您就不会做类似文本编辑的工作。