gpt4 book ai didi

c# - 使用新屏幕的控制台应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:48 27 4
gpt4 key购买 nike

就像 vim、nano 和其他一些命令行文本编辑器一样。进入应用程序时,它变成另一个基于文本的屏幕,应用程序可以独立修改每个字符作为 UI,无需任何命令行屏幕滚动(当我自己的程序简单地输出字符填充屏幕时,终端会自动滚动),甚至可以在控制台屏幕内处理鼠标事件。

  1 
~
~
~
~
~
~
~
-- VISUAL -- 0,0-1 All

然后退出应用程序,屏幕恢复并看起来像应用程序从未输出过的(应用程序屏幕根本不可能覆盖外部输出):

~$ vim

~$

对于 Windows,曾经有一个类似工作的“EDIT”命令。

如何制作一个类似的来实现基于文本的 UI?我应该调用哪种 API?

这取决于操作系统或终端类型吗?

我希望它可以在 Linux(以及通过 SSH)和 Windows 命令行上运行。是否有适用于两者的解决方案,或者我必须单独实现它们?

我需要在 C# (.NET Core) 中开发它,因此首选托管代码解决方案,但 native (C 语言)解决方案也可以。

最佳答案

理论上有多种方法可以做到这一点,但想到的最明显的解决方案是 ncurses .它广泛用于基于控制台的应用程序,包括 Vim。

它是一个 C 库,在 http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ 有很好的教程

当我还是一个非常新手的 C 程序员时,ncurses 是我使用的第一个库,所以我可以说,根据我的经验,只要你已经了解少量 C,它就相当容易使用。

尽管您说您可能对纯 C 库感到满意,但搜索表明它存在 C# 包装器,例如 https://github.com/sushihangover/CursesSharp

编辑:我是从 Linux 的角度回答的;我现在意识到你也想要一个 Windows 答案。我没有在 Windows 中尝试过 ncurses,但是上面链接的 ncurses 网站声称它已经移植到 MinGW 并且可以在 Windows 7 中运行。

关于c# - 使用新屏幕的控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51921942/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com