2011-08-23 94 views
2

在Linux上,控制檯應用程序可以格式化其輸出。他們可以設置字體顏色,設置背景顏色,並可以在控制檯上放置標誌。例如,使用它可以在控制檯中實現一個俄羅斯方塊遊戲。shell格式化語言

我想知道如何做到這一點。我認爲他們使用輸出標記語言或其他東西。任何人都可以告訴我哪裏可以瞭解更多信息?

非常感謝!

回答

1

它不像一系列escape sequences觸發終端查看器以某種方式格式化的標記語言。

您可以在輸出之前發送ANSI轉義序列以指示以下輸出應該是某種顏色,重量和背景。您也可以發送將光標跳轉到特定位置的序列,以繼續寫入輸出。

如果你打算做一個完整的應用程序,你應該考慮使用一些庫,例如使這些可管理的ncurses。

+0

謝謝!我認爲這就是我所尋找的。我已經實現了一個簡單的,基於web的終端,它只是輸出輸出。在某些應用程序中,那些轉義序列和我的終端無法顯示它。現在,我知道他們是如何工作的。謝謝! –

2

使用ncurses庫構建大多數涉及大量運動或顏色的控制檯應用程序。一些很常見的例子是irssi(IRC客戶端),mc(午夜指揮官,控制檯文件瀏覽器),mutt(POP3/IMAP郵件客戶端)

好像你已經知道用來修改控制檯轉義碼顏色。一個很好的控制檯顏色轉義序列列表(用於Bash)can be found here.

2

你顯然需要掌握那些流行的Unix視頻遊戲rogue, srogue, larn, hack, and/or nethack。他們有一個long and venerable history

值得注意的是,這些全部使用標準詛咒 - 或最近,ncurses - 庫。這是screen shot

由於它們沒有操縱桿,因此運動命令是vi命令。他們是最好的方式來磨練您發明的動作技能:不再需要雙指敲擊!你停止思考運動;它只是成爲你手指肌肉記憶的一部分。你真的要發揮他們得到的awesome 「Zen」 state you can get into playing them的感覺:

足夠的練習後,感覺就好像你的手指自己記得怎麼打片。你甚至不看他們。他們有一份工作要做,而且一旦他們瞭解到了,就可以毫無直接監督地完成那項工作。清除外部世界的思想,使節目成爲主導的現實,是音樂家稱之爲「手指記憶」的關鍵。 (您可能聽說過運動員或舞者將其稱爲肌肉記憶,但是當我們談論使用電腦時,它確實是指數。)

[...]當然,那不是真的這是怎麼回事;它似乎只是。你的手指不記得。但是,即使「你」沒有意識到它,控制它們的一部分大腦也會這樣做。發生的事情是,你已經如此成功地吸收了需要有意識的方向而不再需要的舉動。額頭後面的小燈塔管理員可以擔心其他事情,確保你的手指能夠完成你訓練他們做的工作。你的眼睛在屏幕上,程序在你的頭上,你的頭在程序中。你的手指會成爲你的意志的一個不被注意的延伸。 [...]

[...]毫無疑問,對於某些任務來說,鍵盤顯然是最優效率的輸入設備。 考慮一下游戲流氓或其更新的化身之一。你不想使用除鍵盤之外的任何東西。命令集太豐富了。試圖用鼠標和菜單界面而不是鍵盤來玩遊戲會使你的速度減慢至少兩個數量級。

流氓家庭視頻遊戲也是值得注意的展示如何編寫視頻遊戲的常規終端像一個VT100或的xterm,我相信這是你在找什麼。這些天我可能會用比C更現代的語言,但所有相同的原則仍然適用。 Perl和Python都與這些標準庫有良好的接口。