当我在命令行中编写程序以使用时,我注意到有一些限制。例如,我不能画出1像素厚的水平或垂直线,就像tmux在窗口中分隔窗格时一样。我只能将光标向下移动,而不像VI看起来那样。如果光标位于底部,我无法刷新页面顶部的信息。tmux,vim,emacs等如何超越* nix终端的UI限制?
所以,当像TMUX程序和VI做到这一点,我想知道,如果他们是:
绘制屏幕从上到下每一个更新(我认为这是极不可能的,否则我可以在我的终端滚动并看到每个重绘)
使用一些库,使图形在终端,如SDL,我也认为这是不太可能的。使用一些标准的系统调用
我不知道
或最终
- 采取的Linux/Unix的一些特性,它的我完全不知道的好处。
那么,这些程序如何在这样一个看似有限的shell中生成如此丰富的UI?只要答案给我足够的饲料去谷歌横冲直撞,我会很高兴。
我还假设这些程序使用一些常见的方法来做这些事情,但如果这是错误的让我知道。
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html –