5

我正在制作一个程序,在 ncurses 中显示一些信息,然后打开 vim(使用system)以允许用户编辑文件。但是,退出 vim 后,ncurses 屏幕不会重绘。 不要做任何事情,导致我漂亮的菜单完全被破坏refreshwrefresh

所以,我被送回命令行。当我移动到菜单项时,它们会重新绘制。稍微移动一下会得到如下所示的结果:

悲剧

如您所见,我不再处于我漂亮的 ncurses 环境中。

我可以完全拆除 ncurses 并重新设置,但是某些东西(如菜单位置)不会被保留。

我该如何正确地做到这一点?有没有更好的方法来调用一些外部程序并优雅地返回这里?

4

2 回答 2

1

我从来没有完全重新启动诅咒。

如果你做类似的事情怎么办

def_prog_mode()然后 endwin()

执行系统调用

和 refresh() 应该恢复它

于 2010-07-15T17:30:59.050 回答
0

将您的程序状态与 curses 状态分开。

我所知道的唯一干净的方法是完全停止并重新启动诅咒。如果您的程序对其内部状态有一个清晰的概念(应该如此),那么回到相同的位置应该很容易。

祝你好运!

于 2010-07-15T17:25:24.910 回答