光标位置 回忆上次内容
-
上次了解了键盘演化的过程
-
ESC 从 组合键
-
到 独立按键
-
ESC的作用 是
-
进入 控制序列
-
配置 控制信息
-
控制信息
-
\033[y;xH 设置光标位置
-
\033[2J 清屏
-
这到底怎么控制???🤔
-
谁来实现这些功能?
控制
-
是由 系统中 终端软件
-
来实现的
-
具体来说
-
当前系统中 终端软件 就是
-
xfce terminal
输出字符
-
\033是转义序列
-
\33是\033的省略写法
-
`\0ooo 的方式是
-
使用 八进制形式 输出转义字符
-
033 是
-
ord("\e") 的八进制形式
-
也可以 写成 16进制形态
-
0x1b
-
\x1b
print("\033[2J")
-
J 是模式选择
-
清屏模式
-
分为四种清屏
-
0J - 从光标清到屏幕结束
-
1J - 从光标清到屏幕开头
-
2J - 整屏幕清
-
3J - 整屏幕清并选择清空滚动缓存
-
2J 是 整屏幕全清空
屏幕清空
-
仿佛宇宙进行了一场重启
-
回到了最初什么都没有的初始状态
-
白茫茫大地真干净
-
这个字符的宇宙
-
究竟有多大呢?
观察环境
-
进入vi 观察屏幕大小
-
终端屏幕默认 80*24 (字符)
-
这尺寸可以追溯到 早期的存储介质
-
纸质卡片
-
目前已经成为了 终端默认的大小
-
终端清屏之后
-
可以让光标
-
从左上角进行输出吗?
设置光标
-
\33[ 是CSI
-
控制序列前导符
-
Control Sequence Introducer
-
如果没有csi
-
就是将文本直接输出到标准输出流
-
如果加上了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
-
这样就可以 让光标
-
在屏幕中 任意移动
-
一个跟头 十万八千里
-
这就是通过escape引发的
-
控制序列的 作用
escape
-
escape 就是退出
-
从 当前输出序列中 退出来
-
进行 控制信息的输出
-
看起来很像 安全逃生出口
总结
-
这次了解了 一个新的转义模式
-
\33 逃逸控制字符 esc
-
esc 让输出
-
退出 标准输出流
-
进行 控制信息的设置
-
可以 清屏
-
也可以 设置光标输出的位置
-
还能做什么呢?
-
可以 设置 字符的颜色吗???🤔
-
我们下次再说!👋