光标位置

回忆上次内容

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

      • 没 研究过吗?

  • \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. 基于webapi的websocket聊天室(番外一)

    上一篇我已经实现了聊天室,并且在协议中实现了4种类型的消息传输.其实还可以添加video,audio,live等等类型. 不过假如把目前的协议看作RCP1.0版的话,这个版本就只支持有限的4种消息.精 ...

  2. 通过axios实现数据请求

    vue.js默认没有提供ajax功能的. 所以使用vue的时候,一般都会使用axios的插件来实现ajax与后端服务器的数据交互. 注意,axios本质上就是javascript的ajax封装,所以会 ...

  3. Base64编码解码 支持解码为 16进制

    https://base64.xhlylx.com/

  4. .NET周刊【5月第4期 2024-05-26】

    国内文章 开源低代码框架 ReZero API 正式版本发布 ,界面操作直接生成API https://www.cnblogs.com/sunkaixuan/p/18201175 ReZero是一款. ...

  5. no implicit conversion of nil into String

    一.Cocoapod 执行pod install命令时报错 [!] An error occurred while processing the post-install hook of the Po ...

  6. OpenCV笔记(5) Rect类

    看项目代码时,发现了Rect的神奇用法,rect = rect + point.于是了解了一下Rect类. 1. 构造函数 public Rect(Point location, Size size) ...

  7. uniapp 组件使用

    组件使用情况:页面出现多个相似的页面这个时候我们就可以把公共的页面进行封装,避免冗余的代码 1. compoents 目录下新建组件,名称随意[案例就叫 newsList]2. 开始封装需要多次使用的 ...

  8. C语言——函数基本知识

    什么是函数 函数的定义 函数就是程序中独立的功能.(简单来说就是把代码打包成整体,起个名字,方便以后使用) 函数的使用 定义函数的格式 格式: 返回值类型 函数名(形参1,形参2,...) { 函数体 ...

  9. 安装图形化界面时候报错 Transaction check error: file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x86_64 conflicts with file from package grub2-common-1:2.02-0.65.el7.centos.2.noarch

    报错 Transaction check error:file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x8 ...

  10. SELinux 基本原理

    首发公号:Rand_cs SELinux 基本原理 本文讲述 SELinux 保护安全的基本原理 安全检查顺序 不废话,直接先来看张图 当我们执行系统调用的时候,会首先对某些错误情况进行检查,如果失败 ...