光标位置
回忆上次内容
- 上次了解了 新的转义模式 - \033 逃逸控制字符 escape - 这个字符 让字符串 退出标准输出流
- 进行控制信息的设置 - 可以设置 光标输出的位置
 
 
 
- \033 逃逸控制字符 escape 

- ASR33中的ALT MODE - 是 今天的ESC键吗????🤔
 

查询文档
- http://bitsavers.org/communications/teletype/33/310B_Vol_1_33_Teletypewriter_Sets_Technical_Manual_Sep74.pdf

- 最开始的时候 - 还没有esc键
 
- 使用ctrl + shift + k - 实现esc效果
 
- 后来的键盘 - 有了 实体的esc键
 
escape 跳出
- 现在键盘都有这个按键 - 一般在左上角
- 用来 - 退出当前应用/游戏
- 跳出菜单
 
 

- 上图esc在 - 1 的左下
- Q 的左边
 
- esc可以 - 从当前的纯文字标准输出流里面
- 逃(escape)出来
- 进行控制信息的传输
 
键盘的进化过程
- 后来连接主机(main frame)用的是 - 终端(terminal)
 
- 当年最流行的终端 型号是 - DEC VT100
 

- esc 在1 左边 - 还没有 出现在最左上的位置
 
位置的变化
- 玩一些terminal上面的游戏时- 可以用 esc 退出游戏环境 - 进入菜单
- 进行设置、存盘、读档、退出之类的操作
 
 
- 可以用 esc 退出游戏环境 

- 知道 什么时候退 - 比知道 怎么玩更重要😄
 
- 比知道 怎么玩
- 键盘还没有 统一的标准 - 功能键 F1-F10 - 在 最左边
 
 
- 功能键 F1-F10 
标准键盘
- 101键盘布局 成为经典 - 左上角是esc 标准位置
 

- 后来放在 左上角 - 用边距和F1 拉开距离
- 体现escape重要性
 
行业标准
- 键盘开始有了标准布局 - 并形成了工业标准
 

- 可以在ascii字符集里面 - 找到esc 这个字符 么?
 
esc
- 在下图中尝试找到esc

- esc 对应 - (001 1011)2进制
 
- 再到ascii应用中 - 找一下esc?
 
ascii
- 使用apt - 安装ascii这个应用
 
sudo apt install ascii
- 找到这个字符

- 这个esc对应的是 - (27)10进制
- (1B)16进制
 
- 这个(1B)16进制 - 是怎么得到的呢?
 
1b
- 使用hex函数 - 可以得到 - 数字的十六进制形式字符串
- hexadecimal
 
 
- 可以得到 

- 如果是八进制呢?

不同进制 表现形式
- (1b)16进制 - 对应着(27)10进制
- 对应着(33)8进制
 

- 上面的分别是 - 十六进制形态
- 十进制形态
- 八进制形态
 
- 正如下面

- 不同的形态都可以 - 用来转义吗?
 
不同形态
- 不同的转义方式 - 不影响功能
 

- 使用转义序列 - 或者16进制转移方式
- 或者8进制转移方式
 

- 在输出时 - 没有差别
- 都是换行效果
 
escape控制码大全
- CSI 是 - Control Sequence Introducer
- 就是esc加[ - esc就是\033
- 用的是几进制的形式?
 
 

- 可以有各种方式 - 控制位置
 
\033
- 八进制的 形式

- \033[nA 光标上移 n 行
- \033[nB 光标下移 n 行
- \033[nC 光标右移 n 行
- \033[nD 光标左移 n 行
- \033[y;xH 设置光标位置
- \033[2J 清屏
- \033[K 清除从光标到行尾的内容
- \033[s 保存光标位置
- \033[u 恢复光标位置
- \033[?25l 隐藏光标
- \033[?25h 显示光标
光标的自由
- 输出字符的位置 - 以前是固定的
- 仿佛被牢牢锁住
 

- 真的能 挣脱固定位置的锁链 吗?

- 好期待?
总结
- 本次了解了键盘演化的过程 - ESC 从 组合键
- 到 独立按键
 

-  ESC 的作用 - 是 进入控制序列
- 配置控制信息
 
-  控制信息 - \033[y;xH 设置光标位置
- \033[2J 清屏
 
-  这到底怎么控制???🤔 
-  谁来实现这些功能?
-  我们下次再说!👋 
-  蓝桥->https://www.lanqiao.cn/courses/3584 
-  github->https://github.com/overmind1980/oeasy-python-tutorial 
-  gitee->https://gitee.com/overmind1980/oeasypython