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

所以,我被发送回命令行。当我移动到它们时,菜单项redraw。围绕一个看起来像这样的东西的结果:

你可以看到,我不再在我漂亮的ncurses环境中,。

我可以完全拆除ncurses并再次设置件事,但那么一些东西(如菜单位置)不保留。

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

有帮助吗?

解决方案

我从来不得不完全重新启动诅咒。

如果你做一些像

这样的东西怎么办

def_prog_mode()然后 endwin()

执行系统调用

和刷新()应该恢复它

其他提示

将程序状态从诅咒状态分开。

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

祝你好运!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top