光标位置

回忆上次内容

  • 上次讲了 三引号的输出
  • 三引号中
    • 回车和引号 都会 被原样输出
    • \ 还是需要从 \\转义
  • 黑暗森林 快被摸排清了
    • 还有哪个 转义序列

      • 没 研究过吗?

  • \e是 干什么的?

回忆转义

  • 转义转义

    • 转化含义

  • \反斜杠(backslash)加了之后
  • 字符就不是原来的意思了
    • 转义么
  • 转义转义
    • 转化含义
  • 所以\反斜杠这个字符
    • 也叫做转义字符Escape character
    • \b 这两个字符的序列算是一个转义序列 Escape sequence
    • \ 这个转义字符会让 \b转义序列
      • 转义为 Backspace 这个含义
      • Backspace退格就是这个序列转化含义之后的含义
    • 这个转化后的含义也对应一个ascii字符
      • 就是 \b
      • 键盘上的退格对应的数值就是8

转义 Escape

  • \e是什么意思呢?

  • 转义之后的的含义竟然是 escape

搜索结果

  • 来捋一捋

  • \是转义字符

    • 要和后面的字符一起构成转义序列
  • \e是转义序列
    • 转义的含义是 escape
  • 所谓转义转义
    • 转化含义
    • 转义序列\e对应的字符含义是Escape
    • 再次逃逸出去
    • 能逃去到哪里呢?

逃逸

  • 从标准输出序列中逃逸出来

  • 可以让输出

    • 从当前的字符串序列中

      • 逃逸(Escape)出去
    • 后面的内容
      • 可就不是 输出的文本 了
  • 而是 控制序列(Control Sequence)
    • [10;20H 控制 输出位置

      • 第10行第20列进行输出
  • 这种控制方法
    • 在今天被称为

      • ANSI escape code 标准
  • 我们来试试

动手实验

  • 真的可以定位输出
  • 从正常的输出流逃逸到了控制序列!!!

  • 那为什么有控制序列呢?

缘起

  • 电传打字机 输出的颜色

    • 只能通过 控制色带(类似于墨盒)

      • 来控制 打印颜色的深浅

        • 是物理过程

  • 早期的终端

    • 通过调节 显示器亮度 来改变显示效果
    • 各个终端的 制造商
      • 都有 自己独特的 控制字符
    • 这些特殊字符 是和 机器相关 的
    • 彼此 并不兼容
  • 但只要 接受到 这些控制字符
    • 终端 就可以 调整输出方式
  • 比如
    • 在 某个横纵坐标位置[x,y]

      • 输出字符
  • 这就是 数字过程了

统一标准

  • 但是不同终端

    • 控制方式不同
    • 可能 造成显示状态 异常
    • 远程终端输出结果不可控
    • 需要一个关于控制字符的统一标准
  • 1964 年 ISO 646
    • 在欧洲以ECMA-6的形式存在
    • 后来被ANSI(American National Standards Institute)
      • 整合为工业标准
      • 叫做 ANSI X3.64

  • 是不是很像ascii

    • 而且包括了 整个黑暗森林
  • 本来 在各种电传打字机 中实现支持
    • 现在在 terminal软件 中实现支持

esc 键

  • Teletype Model ASR-33 终端键盘

    • 数据通信行业 最受欢迎的终端之一
  • 1963 年推出
    • 注意 shift 和 ctrl 都已经出现
    • Alt Mode 出现在第 1 列

  • \e这个转义序列 有了对应的按键吗?

    • ALT MODE

      • 是用来 切换模式的 特殊按键
      • 这是当时的 esc 键 吗?

总结

  • 这次了解了 新的转义模式

    • \33 逃逸控制字符 esc

      • 这个字符让输出退出标准输出流
      • 进行控制信息的设置
        • 可以设置光标输出的位置

  • ASR33中的ALT MODE

    • 是 今天的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

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI的更多相关文章

  1. MFC中窗口启动后,CEdit编辑框默认光标位置设置,顺序的调节方法

    MFC中窗口启动后,CEdit编辑框默认光标位设置,顺序的调节方法 在编辑界面按下ctrl+D键,就会出现所有控件的Tab键顺序,按照自己想要的顺序依次点击控件,就可以重新安排顺序.数值1就是默认停留 ...

  2. Android 光标位置设置

    EditText edit =(EditText) findViewById(R.id.etTest); 1.设置光标在EditText中的指定位置 edit.setSelection(1); 需要注 ...

  3. 使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示

    1.模拟键盘输入(SendKeys) 功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样. 语法:SendKeys.Send(string keys);SendKeys.SendWa ...

  4. javascript获取以及设置光标位置

    一. 获取光标位置: // 获取光标位置 function getCursortPosition (textDom) { var cursorPos = 0; if (document.selecti ...

  5. [Android教程]EditText设置/隐藏光标位置、选中文本和获取/清除焦点

      有时候需要让光标显示在EditText的指定位置或者选中某些文本.同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点. 1. 设置光标到指定位置 EditText et ...

  6. Android 设置EditText光标位置

    Android中有很多可编辑的弹出框,其中有些是让我们来修改其中的字符,这时光标位置定位在哪里呢? 刚刚解了一个bug是关于这个光标的位置的,似乎Android原生中这种情况是把光标定位到字符串的最前 ...

  7. UITextField 光标的位置设置获取

    UITextField 光标的位置设置获取 通过给UITextField 加一个拓展 //#import "UITextField+ExtentRange.h" #import & ...

  8. Android 设置EditText光标位置(转)

    Android 设置EditText光标位置 最后 CharSequence text = edtTxt_my_account_edit_nickname.getText();if (text ins ...

  9. C# 设置鼠标光标位置

    C# 设置鼠标光标位置 using System.Drawing; using System.Runtime.InteropServices; namespace ZB.QueueSys.Common ...

  10. EditText设置/隐藏光标位置、选中文本和获取/清除焦点(转)

    转:http://blog.csdn.net/dajian790626/article/details/8464722 有时候需要让光标显示在EditText的指定位置或者选中某些文本.同样,为了方便 ...

随机推荐

  1. salesforce零基础学习(一百三十七)零碎知识点小总结(九)

    本篇参考: https://help.salesforce.com/s/articleView?id=release-notes.rn_lab_conditional_visibiliy_tab.ht ...

  2. Javascript/DOM:如何删除 DOM 对象的所有事件侦听器

    Javascript/DOM:如何删除 DOM 对象的所有事件侦听器 一.重写 重写 EventTarget 添加监听事件方法 addEventListener if (EventTarget.pro ...

  3. 23ai免费版本环境快速就绪

    笔者感受就是搞一套Oracle 23ai的学习测试环境,从未如此的简单高效. 因为近期Oracle 23ai这个话题很火,很多人也在找实验环境想亲自体验测试一番. 其实搞这样的环境没有任何的门槛,甚至 ...

  4. 使用SQL语句完成数据表的去重工作

    引入问题 可能大家都遇到过这样一种情况,一张表存在若干行数据,只是主键值相同,但是其它字段都是相同的,这就是我们通常所说的数据库重复数据,那我们是如何将这些数据删除呢?现在我们就介绍一种方法来实现数据 ...

  5. C#自动安装字体

    在Windows系统中,原有自带的字体样式有限,有时候我们的程序会使用到个别稀有或系统不自带的字体.因此我们需要将字体打包到程序中,当程序启动时,检测系统是否有该字体,如果没有则安装该字体,也可以动态 ...

  6. Cmockery学习

    什么是cmockery? 是一个轻量级的C语言单元测试框架 什么是单元测试? 单元测试就是测试一个系统的最小实现单元,往往是函数 示例解析 #include <stdarg.h> #inc ...

  7. zabbix-agent修改主动模式

    1.zabbix-agent工作模式 zabbix-agent进程,有两种工作模式,主动模式,被动视频 1.1 被动模式 被动模式是指 zabbix-server 将需要请求的数据,发给zabbix- ...

  8. 重学前端 - react-第二节: 添加ts + scss

    重学前端 - react: 添加ts + scss 简介: 上一节我们新建了 react 项目.项目中并没有使用 ts + scss. 现在我们为项目添加 ts + scss.是项目后期维护更加方便, ...

  9. CentOS7学习笔记(四) 系统运行级别

    什么是运行级别 在CentOS系统中包含七种运行级别,例如命令行或图形化界面就是最常用的运行级别 运行级别的两种表示方式及作用 运行级别 运行级别 作用说明 0 poweroff.target 关机 ...

  10. 准入控制器(Admission Controller):ResourceQuota,ImagePolicyWebhook

    目录 一.系统环境 二.前言 三.准入控制器简介 四.为什么需要准入控制器 五.启用/禁用ResourceQuota资源配额 5.1 查看默认启用/禁用的准入控制器插件 5.2 ResourceQuo ...