Chinaunix首页 | 论坛 | 博客
  • 博客访问: 204957
  • 博文数量: 236
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2391
  • 用 户 组: 普通用户
  • 注册时间: 2020-08-10 06:35
文章分类
文章存档

2024年(21)

2023年(86)

2022年(53)

2021年(42)

2020年(34)

我的朋友

分类: Python/Ruby

2023-01-31 21:42:56

光标位置

回忆上次内容

  • 上次了解了键盘演化的过程
    • 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 让输出 退出标准输出流
    • 进行控制信息的设置
      • 可以清屏
      • 也可以设置光标输出的位置

图片描述

  • 还能做什么呢?
    • 可以设置字符的颜色吗???????
  • 我们下次再说!????
  • 蓝桥->
  • github->
  • gitee->
  • 视频-> 作者:oeasy
阅读(200) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~