簡體   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