光标位置

回忆上次内容

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

      • 没 研究过吗?

  • \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. MQTT 实践总结

    QMQX 文档:https://www.emqx.io/docs/zh/latest/ MQTT 入门:https://www.emqx.com/zh/mqtt-guide 通过案例理解 MQTT 主 ...

  2. sqlerver 报错5120 无法为该请求检索数据 系统找不到指定路径

    背景: 数据库mdf文件所在盘符F盘被删除了,也就是文件不存在了,sqlserver管理器打开就报错5120,并且正常路径的数据库也不显示出来. 要让正常的数据库显示出来,就需要删除掉已经没有的数据库 ...

  3. Swoole 源码分析之 WebSocket 模块

    首发原文链接:Swoole 源码分析之 WebSocket 模块 大家好,我是码农先森. Swoole 源码分析之 WebSocket 模块 引言 WebSocket 是一种在单个 TCP 连接上进行 ...

  4. WPF基础之样式设置和模板化(三)

    IsItemsHost 属性在此示例中,一个必需的重要属性是 IsItemsHost 属性.IsItemsHost 属性用于指示在 ItemsControl(如处理项列表的 ListBox 控件)的模 ...

  5. NOIP模拟91(多校24)

    T1 破门而入 解题思路 签到题(然而我数组开小直接变成暴力分...) 发现其实就是第一类斯特林数,然后 \(n^2\) 推就好了. 感觉可以用 NTT 优化成 \(nlogn\) ,但是好像并没有什 ...

  6. xv6 磁盘中断流程和启动时调度流程

    首发公号:Rand_cs 本文讲述 xv6 中的一些细节流程,还有对之前文中遗留的问题做一些补充说明,主要有以下几个问题: 一次完整的磁盘中断流程 进入调度器后的详细流程 sched 函数中的条件判断 ...

  7. mysql8 windows 数据库名 表名 大小写

    由于Apollo的SQL 脚本是大小写的.mysql8 默认又是纯小写的. 解决方法: 方法1.卸载MYSQL,重新安装MYSQL时,高级选项中指定区分大写小.这种会清空所有库和数据.不建议. 方法2 ...

  8. 5分钟带你了解RabbitMQ的(普通/镜像)集群

    前言 让我们深入探讨RabbitMQ的集群配置,了解各种集群模式的利弊.本次讨论的重点是帮助您快速理解RabbitMQ集群的运作方式,以及选择最适合您需求的模式.好的,话不多说.在RabbitMQ中, ...

  9. uniapp windows 上架 apple store

    香蕉云 蒲公英 ios上架助手iOS Development 开发!先用上架助手在certificates里面生成一个p12文件在profiles里面生成mobileprovision文件就欧克了 需 ...

  10. Linux unset命令用法

    Linux unset命令用于删除变量或函数. unset为shell内建指令,可删除变量或函数 参数: -f 仅删除函数 -v 仅删除变量 [root@localhost ~]# yangzc=&q ...