2011-08-23 98 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都与这些标准库有良好的接口。