在 Ncurses 中添加一行

Add a line in Ncurses

ncurses 中有添加一行并将光标后的文本移动到新行的功能吗?我现在正在使用 insertln () 并将整个当前行向下移动,但我希望在行中间按下 enter 时行为更接近 vi。

谢谢!

您可以使用 instr 读取当前在 window 中的文本,然后使用 clrtoeol 将其删除,并使用 addstr 将文本放入新位置. (根据需要添加 w and/or mv 前缀)。

请注意,真正的文本编辑器执行 "insert newline" 不会只在屏幕行上操作。它将对文件缓冲区中的逻辑行进行操作,可能会影响多个屏幕行(如果文件中的行大到可以换行)。如果您不将自己的逻辑行结构与您在屏幕上显示的内容分开,那么您就不是在做 text-editor-like 工作。