在Ncurses中添加一行

在Ncurses中添加一行,c,ncurses,C,Ncurses,ncurses中是否有添加一行并将光标后的文本移动到新行的功能?我现在使用的是插入式(),它使整个当前行向下移动,但是我希望在行中行的时候输入更接近vi的行为。< /P> 谢谢 您可以使用instr读取当前窗口中的文本,然后使用clrtool将其擦除,并使用addstr将文本放入新位置。(根据需要添加w和/或mv前缀) 请注意,执行“插入换行符”的真实文本编辑器将不仅仅在屏幕行上操作。它将在文件缓冲区中的逻辑行上运行,可能会影响多个屏幕行(如果文件中的行足够大,可以换行)。如果您没有将自己的逻辑

ncurses中是否有添加一行并将光标后的文本移动到新行的功能?我现在使用的是插入式(),它使整个当前行向下移动,但是我希望在行中行的时候输入更接近vi的行为。< /P>
谢谢

您可以使用
instr
读取当前窗口中的文本,然后使用
clrtool
将其擦除,并使用
addstr
将文本放入新位置。(根据需要添加
w
和/或
mv
前缀)


请注意,执行“插入换行符”的真实文本编辑器将不仅仅在屏幕行上操作。它将在文件缓冲区中的逻辑行上运行,可能会影响多个屏幕行(如果文件中的行足够大,可以换行)。如果您没有将自己的逻辑行结构与屏幕上显示的内容分开,那么您实际上并不是在做文本编辑器之类的工作。

您可以使用
instr
读取当前窗口中的文本,然后使用
clrtool
删除它,并使用
addstr
将文本放入新位置。(根据需要添加
w
和/或
mv
前缀)


请注意,执行“插入换行符”的真实文本编辑器将不仅仅在屏幕行上操作。它将在文件缓冲区中的逻辑行上运行,可能会影响多个屏幕行(如果文件中的行足够大,可以换行)。如果您没有将自己的逻辑行结构与屏幕上显示的内容分开,那么您实际上并不是在做文本编辑器之类的工作。

请参见移动光标的
wmove
函数。我熟悉移动逻辑光标的wmove。单凭这一点并不能完成我想做的事情。我错过什么了吗?我希望如此,洛兰,为什么这不能实现你的目标?如果我理解正确,您正在使用
insertln
插入新行,但它也会移动光标。然后你可以将光标移回<代码> WStest到旧的位置。抱歉,我的意思是,我希望能够把光标放在一个字符串的中间,然后插入一个新的行,把光标移动到新行之后的所有文本。如果您在vi中打开一个文件并点击enter mid string,您将看到我指的行为OK,您指的是一个用户可以在屏幕上输入文本或任何位置的缓冲区吗?请参阅移动光标的
wmove
函数。我熟悉移动逻辑光标的wmove。单凭这一点并不能完成我想做的事情。我错过什么了吗?我希望如此,洛兰,为什么这不能实现你的目标?如果我理解正确,您正在使用
insertln
插入新行,但它也会移动光标。然后你可以将光标移回<代码> WStest到旧的位置。抱歉,我的意思是,我希望能够把光标放在一个字符串的中间,然后插入一个新的行,把光标移动到新行之后的所有文本。如果您在vi中打开一个文件并点击entermidstring,您将看到我所说的行为OK,您是说用户可以在屏幕上输入文本或任何位置的缓冲区吗?