琐碎的想法(四)键盘布局、快捷键的由来

写这篇文章的意义

很多不太了解电脑的同学会觉得键盘的快捷键这么多,这么复杂,为什么不设计的简单点,有的键可能一辈子都用不上,这些发明有什么意义?

Q & A

问:现在的键盘基本都是QWERTY开始呢? 答:因为这是从打字机更新而来,打字机的标准一般是QWERTY。

问:为什么打字机的标准是QWERTY呢? 答:原先的打字机没有标准,按朴素的想法,自然是从ABCD一直到Z。由于最早的打字机工艺不是特别好,两个相邻的键快速按下容易卡住,于是把一些他讲常见的字母组合打乱(比如th、ad等),最后这款打字机卖的比较好,就保留了下来。

问:那么Backspace、Shift、Alt、Esc、control等键是怎么被发明的呢? 答:一部分是源于打字机,另一部分是源于计算机,但是核心都是为了用户的方便操作。

  • 发明于打字机

  • Backspace:一般用户打字机打错字,退格后用”/”、”X”等覆盖表示这个字符被划掉。

  • Shift:是为了让一副键盘能打出大、小写字符(按住shift打出来的是大写,数字变为符号)。
  • Caps Lock:若有一个场景是一排大写字母,一直按着Shift很不方便而发明,而且数字不会变为符号。
  • Enter:回车键,在打字机上使用换行(\n)需要0.2秒也就是两个字符,如果这时候打字会丢失字符,所以新增了一个回车(\r)防止字符丢失。
  • Spacebar: 空格键,顾名思义分隔字符。

  • 发明于键盘

  • Alt:是 Alter 的缩写,在最开始的计算机还是dos系统,没有鼠标,主要用于呼出菜单,比如 alt+tab(切换任务)、alt+F4(关闭页面)。

  • Ctrl:是 Control 的缩写,执行一些特定的命令 比如最常见的 ctrl+c(copy 复制)、ctrl+s(save 保存)。
  • Tab:是 Tabulator 的缩写,在以前没发明表格之前,排版非常麻烦,用制表符会比较方便。(由于现存的意义比较小,所有很多IDE会将制表符\t优化为四个空格)
  • Esc:是 Escape 的缩写,终止,退出当前任务。

  • 发明于笔记本

  • fn:用于和F1-F12一起使用,用来便携调节音量、亮度、麦克风、摄像头等等

问:那么快捷键是怎么来的呢? 答:各有各的来历,不过我这刚好知道两则故事。

  • Ctrl+Alt+Del:源于早期系统容易出现bug,利用这个组合键可以重启电脑或结束无响应任务,这么设置仅仅是因为这几个键隔得比较远。
  • Ctrl+C、Ctrl+V:最早的电脑是命令行界面,只能使用键盘操作。 后面出现了对用户更加优化的图形用户界面,同时为了方便使用,发明了很多快捷键和鼠标, 复制粘贴功能是其中比较著名的发明。

这篇文章不可能将所有的快捷键一一描述,有兴趣的读者可以自行搜索其他常见快捷键的由来。 只是想为键盘稍微打抱不平,我们现在能用上比较好用的键盘,还是需要对其有一些体谅。

Original: https://www.cnblogs.com/kwanwoo/p/14368226.html
Author: Kwanwooo
Title: 琐碎的想法(四)键盘布局、快捷键的由来

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589581/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • simHash 简介以及 java 实现

    传统的 hash 算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法。产生的两个签名,如果相等,说明原始内容在一定概 率 下是相等的;如果不相等,除了…

    Java 2023年5月29日
    087
  • 提名 Apache ShardingSphere Committer,说说方法

    文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站:xiaomage.info 就在前几天,收到了 Apache ShardingSphere Vote 我成为 Com…

    Java 2023年6月14日
    076
  • 【Spring学习】AOP实现日志记录

    AOP知识点 AOP,面向切面编程。通过预编译方式和运行时动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。 AOP编程思想就是把很多类对象中的横切问题点,从业务…

    Java 2023年6月5日
    0108
  • bean标签使用

    Java代码 ​ bean标签中添加scope属性,设置bean对应对象生成规则. 2.1 scope = “singleton” ​ 单例,默认值,适用于…

    Java 2023年6月13日
    069
  • IDEA如何导入jar包?

    IDEA 如何导入jar包 01 准备步骤 通过Apache官网或者maven下载需要的jar包 02 具体步骤 step1: 在src目录下,创建一个package,取名为lib…

    Java 2023年6月5日
    095
  • Java Class 定义、创建对象、访问属性、及执行过程

    类的定义 class 类名 { String 属性名称;//(也称成员变量、field字段)可以定义多个 int 属性名; char 属性名; int[] 属性名; // 成员变量…

    Java 2023年6月5日
    0152
  • BTrace 初探

    BTrace 是一款java诊断工具,在解决现场问题的时候非常有用。 今天使用的时候碰到几个坑,先记录一下. 下载下来以后直接运行报错 root@iZ2ze89756yjbvq7l…

    Java 2023年6月16日
    075
  • Java学习 (八)基础篇 运算符

    运算符 基本运算符 1.一元基础运算(重点) 一元运算符 (a++ / ++a) (a– / –a) 2.二元基础运算 基础 计算返回值类型 关系运算 幂运…

    Java 2023年6月8日
    0100
  • linux安装electron

    遇到权限问题执行 npm i –unsafe -perm 安装electron的命令 sudo npm install electron -g –unsaf…

    Java 2023年6月8日
    058
  • easyUI自定义DataGrid分页栏

    @author YHC datagrid内置一个很好特性的分页功能,自定义也相当简单,在这个教程中,我们将创建一个datagrid 和添加一些自定义按钮在分页工具栏. Item I…

    Java 2023年5月29日
    076
  • Spring AntPathMatcher

    Spring AntPathMatcher AntPathMatcher是用来对资源路径或者url的字符串做匹配使用的。采用的是Ant风格的格式 Ant风格的资源地址支持3中匹配 …

    Java 2023年6月7日
    081
  • SpringBoot中通过AOP整合日志文件

    1.SpringBoot中通过AOP整合日志文件 1. 导入相关的依赖 org.springframework.boot spring-boot-starter org.sprin…

    Java 2023年6月5日
    0102
  • H3CNE实验笔记

    telnet远程登录 实验拓扑 [H3C]telnet server enable [H3C]int g0/0 [H3C-GigabitEthernet0/0]ip add 192…

    Java 2023年6月6日
    080
  • 为大势趋,驭势者胜:引迈信息三周年回顾与展望

    三年的风雨兼程,三年的创新研发,自福建引迈信息技术有限公司成立以来,始终坚持以创新为引领发展的第一动力,坚持”以客户为中心,以产品为导向”的发展理念,不断进…

    Java 2023年6月5日
    079
  • xampp相关配置文件所在路径

    环境: Xampp3.2.4一般来讲,可以在xampp的控制面板打开先关的配置文件,但是出现有些问题的时候,还是需要到别的路径下找到相关配置文件修改才行。 todo:更改xampp…

    Java 2023年6月7日
    087
  • java 初始化

    这里的主要内容是 初始化相关的内容,其中还会穿插其他的内容 构造器初始化 静态数据初始化 显示的静态初始化 非静态…

    Java 2023年6月5日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球