繁体   English   中英

我该如何编写命令行界面?

[英]How can I code command line interface?

我是一名GUI开发人员。 我使用了许多GUI框架,包括WindowsForms,Flash,HTML,AppKit,UIKit。 我可以说我知道如何编写GUI。

突然间,我对命令行界面感兴趣。 像VI或Emacs。 因为我开始使用GUI编程,所以我没有任何关于CLI的经验或知识。 当然,我使用了VI和unix shell,但是我不知道如何实现它们。 我想知道它。

对于GUI,所有图形内容的大多数基本构造都是最低级别的绘图方法。 对于软件实现,它是基于CPU的绘图方法。 对于硬件加速实现,它是基于OpenGL的方法。 所有GUI内容都建立在它们之上。 我对CLI有什么期望? 如何在控制台上绘制文本并使插入符闪烁?

我只需要第一步。 像函数名称或库名称。 例如,像setPixel()函数。 任何帮助将不胜感激。

PS我更喜欢通用Unix系统。 主要是POSIX。 目前我正在使用Mac OS X.当然语言是C.

如果你想直接潜水,学习ncurses并打字。 这是编写控制台gfx应用程序的方法。

如果您想学习基础知识, ANSI转义码 这是ncurses如何与终端进行魔法交互的机制。 它本身就很容易管理,也是一个有趣的学习主题 - 你只需要打印一个转义序列,光标移动到屏幕上的特定点,或者打印出的任何内容都以反向视频打印,依此类推。 从那里开始,使用256个ASCII代码的上半部分是原始的semigraphics,依此类推。

请查看http://en.wikipedia.org/wiki/Readline,因为它可以为您提供命令行历史记录,制表符完成等功能。

还可以为基于控制台的对话框屏幕添加http://en.wikipedia.org/wiki/Ncurses

你在用哪种语言进行实验? 哪个操作系统? 正如已经说过的那样,ncurses对于像unix这样的系统来说是一个很好的库,但是如果你在ms窗口下,我想事情会有所不同。

另外要记住的是,根据您的操作系统,您可能需要学习和理解termcap条目或继承的DOS遗留问题。

对于* nix,如果要尝试像素和类似物,则必须检查一些图形库。 如果它只是你需要的普通终端接口,ncurses IS就是起点(直到你想用termcap和escapes完成所有这一切)。

有很多框架可用于开发基于文本/终端的UI,或多或少地提供您需要的一切。 但是如果你想跟踪一条从像素(1,1)到像素(10,24)的线,我认为你应该专注于图形库。 (* nix env中的OpenGL很容易通过MESA库获得)。

在win32,好吧,DirectX,但他们是一个痛苦的麻烦。

C有一个库,可以更好地操作终端: ncurses

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM