写点什么

浅谈快捷键(一)

  • 2020-01-17
  • 本文字数:1850 字

    阅读完需:约 6 分钟

浅谈快捷键(一)


(正文无法观看视频,可点击左下角阅读原文后观看)


又是一个小的分享,落笔成文。开始其实是想做一个文本编辑器的分享,不过在准备过程中,发现编辑器之争很多时候争的却是快捷键系统的设计。总觉快捷键系统的默认设计虽然是编辑器一个很重要的区别,但因为其可以通过插件或是配置的方式转换(例如 Evil-Mode),所以快捷键系统的设计不再是某个编辑器的特性,而是一套独立于编辑器之外的系统。而运用好快捷键可以让日常工作生活的效率大幅提升,事半功倍,俗话说,天下武功唯快不破嘛。

溯源

回想第一次接触键盘应该就是小学时代玩过的打字机了,通过敲击键盘上的某一个按键,驱动一个撞针,将该按键对应的字符的字模打击到色带上,从而在纸上打出该字符,知道为什么我们现在叫“打字”了吧。回想那个时候其实是没有快捷键这么个东西的,连换行这种事情都不是通过按键而是通过手动去移动卷纸的那个机械轴来完成的。



随着计算机技术的发展,先后出现了电子打字机(又称文字处理机)和个人计算机(PC),打出来的字不再是印到纸上,而是显示在显示器中。既然是在显示器上,就使编辑功能可以更加强大,我们每按下一个按键做的事情就变成了两种:输入对应的字符或对电脑下达一个命令(移动光标,选择一段文字,删除一个字符等)。



而随着人机交互界面和鼠标的发展,我们对电脑下命令这件事有了一个更简单的方式。就是将命令做成可交互的界面元素,例如按钮,然后通过用鼠标点击的方式。这大大的降低了电脑的使用难度,也促使了计算机逐渐走进了千家万户。于此同时,键盘作为输入设备界的老大哥,被成功减负,又逐渐回归了字符输入的功用。



可好景不长,随着软件(包括操作系统)越来越复杂,用鼠标点选的效率问题慢慢呈现,毕竟一些常用操作每次都要去移动鼠标点击还是比较低效的。于是我们又想到了键盘这个老大哥,三顾茅庐,重出江湖,键盘又慢慢的替鼠标分担起一些对电脑下达命令的职责,也就有了众人皆知的一些快捷键,例如 Ctrl+C。



一些电脑的重度使用者(例如程序员和文字工作者),经过对比,发现快捷键对于鼠标来讲还是要快捷得多。毕竟在键盘上按几个键比用鼠标在分辨率日益变高的显示屏上点击一个区域要快速的多,还不包括找到命令对应的按钮以及手从键盘移动到鼠标,再从鼠标移动回键盘所消耗的时间。而快速则保证了我们的思路不会打断,输入(IO)能尽量不托大脑(CPU)的后腿。因此,我们就开始追求起所谓的全键盘操作。

Vim & Emacs

正所谓理想很丰满,现实很骨感。随着软件的发展,一个软件能接受的命令动辄就是成百上千的,如何用区区只有 100 个左右的按键来映射就变成了一个需要解决的问题。率先面对这个问题的就是文本编辑器,所以我们来看看 Vim 和 Emacs 是如何来解决这个问题的。


Vim(江湖人送外号:编辑器之神),引入了模式。既然我们在按下一个或多个按键的时候,可能是输入也可能是发送命令,这本身不就是存在这个多个状态么?所以在 Vim 里就干脆直接加入了模式(又称模态)。也就是编辑器存在不同模式状态(普通、输入、选择),而按键也在不同的模式可以被定义成不同的功能。


Emacs(江湖人送外号:神之编辑器),区别于 Vim,默认采用了另一套更容易被大众所接受的快捷键体系来解决快捷键设计的问题,也就是通过快捷键的组合来解决。例如打开一个文件的快捷键是 Ctrl+X Ctrl+F。这种快捷键的设计好处是不需要关注当前的编辑器模式了,但缺点是需要按更多的键,可以简单的理解每次按下 Ctrl 就是在做一次短暂的模式切换。


这是两种快捷键体系设计思路,但是对于我们有什么用呢?随着 Vim 和 Emacs 多年的圣战和两者神一般的地位。这两套快捷键体系潜移默化的影响着之后众多的软件的快捷键设计。而我本人所使用的软件中,像 Readkit、Airmail 类似的软件的快捷键就是混合了 Vim 和 Emacs 的一些经典元素的,而 Gmail、Trello 和 Github 这种常用的有点逼格的网站都一定程度的借鉴了 Vim 或 Emacs 的快捷键,如果使用 Chrome 还可以使用 cVim 这种神器,而 MacOS 更是原生就支持 Emacs 的一些核心快捷键。所以说理解学习这两种快捷键体系,对我们将大有好处。

系统快捷键设计

设计并使用好系统级别的全局快捷键,也可以大幅提高我们的日常工作生活效率。我使用的是 MacOS 系统,将日常常用的功能通过 Quicksilver 和 Alfred 软件的功能定义成为系统级别的全局快捷键。总之打磨出一套适合自己全局快捷键是一件费心费力但绝对值得去尝试的一件事,下面是我自己录的一段演示视频。



本文转载自健荐公众号。


原文链接:https://mp.weixin.qq.com/s/ggBRTud9OnxBbZ2daGWpZA


2020-01-17 18:081341

评论

发布
暂无评论
发现更多内容

【LazyLLM全面教程(图文版)】新系列来袭!今天学,明天别人追着喊你大佬!

商汤万象开发者

AI 多模态 agent LLM

10+热门 AI Agent 框架深度解析:谁更适合你的项目?

测试人

关于 KWDB 数据存储的几件事儿

KaiwuDB

数据库

面试官:谈谈你AI项目的具体实现?

王磊

解决Linxu Obsidian 黑曜石笔记无法关联浏览器插件问题

虚实的星空

Obsidian 黑曜石笔记

火极一时的AI蛋白质解析,怎么样了?

脑极体

AI

百万奖金,2025 阿里云「AI安全」全球挑战赛等你来!

新消费日报

我把PS卸载了!只因这款国产免费AI,动动嘴就能把废片变大片。

田威AI

Obsidian 浏览器插件关联 - 极简版

虚实的星空

Linux Obsidian 黑曜石笔记

n8n的基础安装分享

溪抱鱼

Docker n8n

钉钉MCP能力上新:AI如何提效你的工作流程

钉钉开发者

MCP MCP Server

东荟城名店仓联乘韩国人气玩偶 BELLYGOM 打造「Dive into Summer」主题活动

极客天地

Java锁这样用,从单机到分布式一步到位

电子尖叫食人鱼

Java

Python 语言连接并操作 KWDB 数据库

KaiwuDB

数据库

从 “卡顿” 到 “秒开”:外投首屏性能优化的 6 个实战锦囊|得物技术

得物技术

开发语言

MyEMS开源能源管理系统广泛应用

开源能源管理系统

开源 能源管理系统

开源赋能能源转型:MyEMS 落地 ISO 50007 的全链路指南

开源能源管理系统

开源 iso 50007 能源管理系统

同济医院R语言训练营第三期开讲!上交大张维拓老师主讲

ModelWhale

R 语言 同济医院 上海交通大学

实操体验 - KWDB分布式多模数据库深度探索:高效部署安装指南与TSBS性能压测技巧全攻略

KaiwuDB

数据库

挖掘数据价值,构建数据驱动型财务规划

智达方通

数字化转型 数据驱动 全面预算管理 财务规划 企业运营

OpenAI Agents 概述

wasa

原点安全签约金网络数科,共建一体化数据安全防护体系

原点安全

数据安全 数据安全厂商 一体化数据安全平台 供应链数据安全 数据安全产品

轻帆云AI Inside实践:GenAI 如何推动 ITSM 驶入产业深水区?

云智慧AIOps社区

ITSM ITSM软件 工单管理

黑龙江等保测评2025新政策

等保测评

NL2SQL 再创佳绩!阿里云论文中选 SIGMOD 2025

阿里云大数据AI技术

人工智能 深度学习 云计算 大数据 阿里云

MyEMS开源能源管理系统简介

开源能源管理系统

开源 能源管理系统

“2025京东方投资者日”在沪举办 资本战略转型开启价值创造新阶段

爱极客侠

订单初版—生单链路实现的重构文档

不在线第一只蜗牛

WPF

渣运公司心头好:“充电便宜跑得远,豪沃TX新能源自卸车巴适得板!”

科技热闻

东荟城名店仓联乘韩国人气玩偶 BELLYGOM 打造「Dive into Summer」主题活动

编程猫

IT服务台经理的角色是什么?-ManageEngine卓豪

ServiceDesk_Plus

IT服务台

浅谈快捷键(一)_文化 & 方法_王健_InfoQ精选文章