光标位置
回忆上次内容
- 上次了解了键盘演化的过程
- ESC 从 组合键
- 到 独立按键
- ESC 的目的
- 是进入控制序列
- 配置控制信息
- 控制信息
- \033[y;xH 设置光标位置
- \033[2J 清屏
- 这到底
怎么
控制来着???🤔 - 现在 系统里
- 这些行为 是
谁
来实现的呢?
控制
- 是由 gui系统中
- 终端软件 来实现的
- 具体来说就是
- xfce terminal
输出字符
\033
是转义序列
\33
是\033
的省略写法33
是 8 进制数形态的ord(“\e”)
- 也可以 写成 16进制形态
\x1b
print("\033[2J")
- J 是模式选择
- 清屏模式
- 分为四种清屏
- 0J - 从光标清到屏幕结束
- 1J - 从光标清到屏幕开头
- 2J - 整屏幕清
- 3J - 整屏幕清并选择清空滚动缓存
- 2J 是 整屏幕清
观察环境
- 进入vi 观察屏幕大小
- 终端屏幕默认 80*24 (字符)
设置光标
- \33[ 是CSI
- 控制序列前导符
print("\33[1;1Hoeasy")
- 1;1 指的是
- 屏幕左上角
- 终端大小
- 横向80字符
- 纵向24字符
- 中间用分隔符是分号(😉
- 设置好了 之后
- 输出 后面的字符 oeasy
- H 是模式选择
- 可以先清屏再输出么?
清屏并设置光标
print("\33[2J") print("\33[1;1Hoeasy")
- 这是两句话
- 完成两件事
- 2J清屏
- 1;1H设置输出位置
- 两句话可以合并成一句吗?
合并输出
- “\33[2J\33[1;1Hoeasy”
- \33[2J 终端接收到后清屏
- \33[1;1H 终端接收到后设置光标
- 终端输出 oeasy
print("\33[2J\33[1;1Hoeasy")
- 可以换个位置 输出吗?
换个位置
print("\33[2J\33[10;10Hoeasy")
- “\33[2J\33[10;10Hoeasy”
- 先清屏
- 再在(10,10)坐标输出
oeasy
- 这就是esc的作用
escape
- 从当前输出序列中退出来
- 进行控制信息的输出
- 看起来很像安全逃生出口
总结
- 这次了解了一个新的转义模式
- \33 逃逸控制字符 esc
- esc 让输出 退出标准输出流
- 进行控制信息的设置
- 可以清屏
- 也可以设置光标输出的位置
- 还能做什么呢?
- 可以设置字符的颜色吗???🤔
- 我们下次再说!👋
- 蓝桥->https://www.lanqiao.cn/courses/3584
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython
- 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy