[oeasy]python0081_[趣味拓展]ESC键进化历史_键盘演化过程_ANSI_控制序列_转义序列_CSI

news2024/11/13 7:51:15

光标位置

回忆上次内容

  • 上次了解了 新的转义模式
    • \033 逃逸控制字符 escape
      • 这个字符 让字符串 退出标准输出流
      • 进行控制信息的设置
        • 可以设置 光标输出的位置

图片描述

  • ASR33中的ALT MODE
    • 是 今天的ESC键吗????🤔

图片描述

查询文档

  • http://bitsavers.org/communications/teletype/33/310B_Vol_1_33_Teletypewriter_Sets_Technical_Manual_Sep74.pdf

图片描述

  • 最开始的时候
    • 还没有esc键
  • 使用ctrl + shift + k
    • 实现esc效果
  • 后来的键盘
    • 有了 实体的esc键

escape 跳出

  • 现在键盘都有这个按键
    • 一般在左上角
    • 用来
      • 退出当前应用/游戏
      • 跳出菜单

图片描述

  • 上图esc
    • 1 的左下
    • Q 的左边
  • esc可以
    • 从当前的纯文字标准输出流里面
    • 逃(escape)出来
    • 进行控制信息的传输

键盘的进化过程

  • 后来连接主机(main frame)用的是
    • 终端(terminal)
  • 当年最流行的终端 型号是
    • DEC VT100

图片描述

  • esc1 左边
    • 还没有 出现在最左上的位置

位置的变化

  • 玩一些terminal上面的游戏时
    • 可以用 esc 退出游戏环境
      • 进入菜单
      • 进行设置、存盘、读档、退出之类的操作

图片描述

  • 知道 什么时候退
    • 比知道 怎么玩重要😄
  • 键盘还没有 统一的标准
    • 功能键 F1-F10
      • 在 最左边

标准键盘

  • 101键盘布局 成为经典
    • 左上角是esc 标准位置

图片描述

  • 后来放在 左上角
    • 用边距和F1 拉开距离
    • 体现escape重要性

行业标准

  • 键盘开始有了标准布局
    • 并形成了工业标准

图片描述

  • 可以在ascii字符集里面
    • 找到esc 这个字符 么?

esc

  • 在下图中尝试找到esc

图片描述

  • esc 对应
    • (001 1011)2进制
  • 再到ascii应用中
    • 找一下esc?

ascii

  • 使用apt
    • 安装ascii这个应用
sudo apt install ascii
  • 找到这个字符

图片描述

  • 这个esc对应的是
    • (27)10进制
    • (1B)16进制
  • 这个(1B)16进制
    • 是怎么得到的呢?

1b

  • 使用hex函数
    • 可以得到
      • 数字的十六进制形式字符串
      • hexadecimal

图片描述

  • 如果是八进制呢?

图片描述

不同进制 表现形式

  • (1b)16进制
    • 对应着(27)10进制
    • 对应着(33)8进制

图片描述

  • 上面的分别是
    • 十六进制形态
    • 十进制形态
    • 八进制形态
  • 正如下面

图片描述

  • 不同的形态都可以
    • 用来转义吗?

不同形态

  • 不同的转义方式
    • 不影响功能

图片描述

  • 使用转义序列
    • 或者16进制转移方式
    • 或者8进制转移方式

图片描述

  • 在输出时
    • 没有差别
    • 都是换行效果

escape控制码大全

  • CSI 是
    • Control Sequence Introducer
    • 就是esc加[
      • esc就是\033
      • 用的是几进制的形式?

图片描述

  • 可以有各种方式
    • 控制位置

\033

  • 八进制的 形式

图片描述

  • \033[nA 光标上移 n 行
  • \033[nB 光标下移 n 行
  • \033[nC 光标右移 n 行
  • \033[nD 光标左移 n 行
  • \033[y;xH 设置光标位置
  • \033[2J 清屏
  • \033[K 清除从光标到行尾的内容
  • \033[s 保存光标位置
  • \033[u 恢复光标位置
  • \033[?25l 隐藏光标
  • \033[?25h 显示光标

光标的自由

  • 输出字符的位置
    • 以前是固定的
    • 仿佛被牢牢锁住

图片描述

  • 真的能 挣脱固定位置的锁链 吗?

图片描述

  • 好期待?

总结

  • 本次了解了键盘演化的过程
    • ESC 从 组合键
    • 到 独立按键

图片描述

  • ESC 的作用

    • 是 进入控制序列
    • 配置控制信息
  • 控制信息

    • \033[y;xH 设置光标位置
    • \033[2J 清屏
  • 这到底怎么控制???🤔

  • 来实现这些功能?

  • 我们下次再说!👋

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/840989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023-08-06 LeetCode每日一题(24. 两两交换链表中的节点)

2023-08-06每日一题 一、题目编号 24. 两两交换链表中的节点二、题目链接 点击跳转到题目位置 三、题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即&#xff0…

MySQL索引原理以及SQL优化

文章目录 一、索引1.1 索引分类1.1.1 按数据结构分类1.1.2 按物理存储分类1.1.3 按列属性分类1.1.4 按列的个数索引 1.2 索引的代价1.3 索引的使用场景1.4 不使用索引的场景 二、索引的实现原理2.1 索引存储2.2 页2.3 InnoDB中的B树2.4 InnoDB的体系结构2.5 最左匹配原则2.6 覆…

人工智能自然语言处理:抽取式文本分割(Text Segmentation)算法介绍总结,智能断句解决文本过长问题

NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型…

快速修复应用程序中的问题的利器—— Android热修复

热修复技术在Android开发中扮演着重要的角色,它可以帮助开发者在不需要重新发布应用程序的情况下修复已经上线的应用程序中的bug或者添加新的功能。 一、热修复是什么? 热修复(HotFix)是一种在运行时修复应用程序中的问题的技术…

2023/08/05【网络课程总结】

1. 查看git拉取记录 git reflog --dateiso|grep pull2. TCP/IP和OSI七层参考模型 3. DNS域名解析 4. 预检请求OPTIONS 5. 渲染进程的回流(reflow)和重绘(repaint) 6. V8解析JavaScript 7. CDN负载均衡的简单理解 8. 重学Ajax 重学Ajax满神 9. 对于XML的理解 大白话叙述XML是…

图像 检测 - RetinaNet: Focal Loss for Dense Object Detection (arXiv 2018)

图像 检测 - RetinaNet: Focal Loss for Dense Object Detection - 密集目标检测中的焦点损失(arXiv 2018) 摘要1. 引言2. 相关工作References 声明:此翻译仅为个人学习记录 文章信息 标题:RetinaNet: Focal Loss for Dense Obje…

Matlab进阶绘图第25期—三维密度散点图

三维密度散点图本质上是一种特征渲染的三维散点图,其颜色表示某一点所在区域的密度信息。 除了作图,三维密度散点图绘制的关键还在于密度的计算。 当然,不管是作图还是密度的计算,这些在《Matlab论文插图绘制模板》和《Matlab点…

小研究 - 基于 MySQL 数据库的数据安全应用设计(二)

信息系统工程领域对数据安全的要求比较高,MySQL 数据库管理系统普遍应用于各种信息系统应用软件的开发之中,而角色与权限设计不仅关乎数据库中数据保密性的性能高低,也关系到用户使用数据库的最低要求。在对数据库的安全性进行设计时&#xf…

学习笔记-JAVAJVM-JVM的基本结构及概念

申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 原资料地址:课程资料 什么是JVM 原文连接: 原文连接 JVM是J…

即将发布的 Kibana 版本可运行 Node.js 18

作者:Thomas Watson Kibana 构建在 Node.js 框架之上。 为了确保每个 Kibana 版本的稳定性和使用寿命,我们始终将捆绑的 Node.js 二进制文件保持为最新的最新长期支持 (LTS) 版本。 当 Node.js 版本 18 升级到 LTS 时,我们开始将 Kibana 升级…

【WebRTC---源码篇】(二十三)JitterBuffer

PacketBuffer packetbuffer类中重要的一些变量 // buffer_.size() and max_size_ must always be a power of two.const size_t max_size_;//能存储的最大元素个数// The fist sequence number currently in the buffer.uint16_t first_seq_num_ RTC_GUARDED_BY(crit_);//这个…

Canmv K210开发板训练自己的模型

文章目录 前言​一、为什么选择Canmv开发板?二、利用Maix Hub在线训练三、配置开发环境1.MaixPy IDE2.刷指定固件 四、部署在Canmv开发板上五、测试模型 前言​ 关于Canmv开发板的介绍: CanMV K210 AI开发板全网首发,项目代码完全开源&#x…

C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig与zag/左右双旋/3+4重构)

本文目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.34重构05.综合评价AVL5.1优点5.2缺点 06.代码注意插入算法删除算法完整代码&#xff1a…

Spring Boot3.0(一):入门篇

什么是 Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 用我的话来理解,就是 Spring…

Python自动化实战之使用Pytest进行API测试详解

概要 每次手动测试API都需要重复输入相同的数据,而且还需要跑多个测试用例,十分繁琐和无聊。那么,有没有一种方法可以让你更高效地测试API呢?Pytest自动化测试!今天,小编将向你介绍如何使用Pytest进行API自…

K8s持久化存储(nfs网络存储)

数据卷 emptydir,是本地存储,pod重启,数据就不存在了,需要对数据持久化存储 1.nfs,网络存储 ,pod重启,数据还存在的

32.SpringMVC配置

SpringMVC配置 在pom.xml里面将之前的"jar"打包方式更改为"war" 因为之前在JavaWeb创建Maven时就是按web工程来创建的(详细可参考5.IDEA里面使用Maven.md博客),所以不需要再创建webapp目录了,完整目录如下&a…

20天学会rust(二)rust的基础语法篇

在第一节(20天学rust(一)和rust say hi)我们配置好了rust的环境,并且运行了一个简单的demo——practice-01,接下来我们将从示例入手,学习rust的基础语法。 首先来看下项目结构: 项目…

云原生Kubernetes:阿里云托管k8s集群ACK创建和使用

目录 一、理论 1.容器服务Kubernetes版 2.ACK Pro版集群概述 3.CKA版本说明 二、实验 1.创建专有版Kubernetes集群 三、问题 1.依赖检查未通过 一、理论 1.容器服务Kubernetes版 (1)概念 阿里云容器服务Kubernetes版(Alibaba Cloud…