为什么老编辑器Vim这么“难用”,却很受欢迎?

strongerHuang 2020-07-11 00:00

关注、星标公众,不错过精彩内容

来源:量子位

一个1991年正式发布,如今已经快30岁的「高龄」的代码编辑器Vim,为何如此受欢迎?


在2019年「StackOverflow」关于最流行的开发环境的调查,Vim仍然排在并列第四位,大约有25%的Web开发人员正在使用它。 

      

而在它之前的,全是2000年以后才出现的代码编辑器。

Vim除了「高龄」以外,还有一个点也困扰着大家,那就是「难用」。如果你没用过,你连怎么退出都不会!

而且这个难用的梗经久不衰。

比如「StackOverflow」有一个近八年之久的问题,活跃度仅在2天前,浏览量累计达210万次

「如何退出Vim编辑器?」

这个看上去似乎是再简单不过的问题了,却依然经久不衰,引发网友热切讨论。

这时候,可能就想问,为何这个Vim这么难用,还这么受欢迎?

了解一下它的历史由来,也许就可以窥见一些原因。

半世纪的积累

最近有一位博主Nikola Đuza,就介绍了Vim是如何开始的——「How Did Vim Become So Popular」。

还记得以前「打孔卡」的时代吗?将「打孔卡」放入计算机内部从而实现编程。对于这一方式来说,放置他们的顺序很重要。

想象一下,这是一张4.5mb数据的照片,堆叠在62500个打孔卡中,然后删除它,再次对它排序。

但是随着计算机功能和存储增长,打孔卡渐渐不能满足程序员的需求,这时候出现了QED编辑器(ed的前身),由此便进入到了「行编辑」时代。

ed编辑器

ed编辑器是一款经典的行编辑器,由贝尔实验室开发,1973年正式发布,已经有47年之久,但至今仍然可以使用。

如果你使用的是Linux或Mac OS,打开终端,输入ed,便可以得到一个简单的行编辑器。

而如果你要写入文件,输入 a并按Enter键,就可以开始编写文本,输入.退出附件模式。然后写入文件,可以输入「w myfile.txt」并按Enter键,最后输入q退出。


# ed
a
Hey there!
I'm qbitai.I'using ed right now.
How cool!    
.
w myfile.txt
60
q


而使用Vim的网友,可能就会觉得很熟悉。Vim和ed有很多相似的地方。这篇博主就提到说,如果你会使用Vim,那么ed就会很快上手。

比如,:q

而在ed之后,便是em。它有「the editor for mortals」(凡人的编辑器)的称号。

也就是说,em可以跟ed做一样的事情,但是没有ed那般神秘,更适合大多数人使用。

Vim的前身——Vi

而随后基于em代码,Sun联合创始人,兼首席科学家Bill Joy开发了ex,算得上是扩展版。它在以往的模式上增加了visual模式,它可以在屏幕上打开文件。

三年之后,操作系统中引入了可执行文件Vi,但仍然可以通过在Vi/Vim访问ex命令。

是他奠定了今天Vim编辑器的键位设计,如果觉得快捷键难记,就怪他吧。

当时Bill Joy使用的是下面的键盘:esc键在现在的tab位置,方向键和字母键混用,这也就注定了之后Vim怪异的键位设计。

vi发布是在1979年,那么Vim是如何诞生的呢?

Vim的诞生

这还得从Vi发布之后的「模仿」开始,很多人开始模仿、克隆vi编辑器。当时就有这么一个「Vi Improved」从中脱颖而出。

它是由「Bram Moolenaar」创建,这个人来头可不小,他还是软件开发工具A-A-P、编程语言Zimbu的开发者。在使用Vim的人,可能看到过他的名字。

Bram使用了一个名为STEVIE的Vi克隆版,并注意到它缺少许多vi的命令。他在此基础上增加了一些新的功能,使其与vi兼容,并以 “Vi Improved “的名义发布。

1993年的2.0版本开始使用Vim名字,然后一直这样沿用至今。

这个几乎集成了近半世纪智慧与努力的Vim,将大量的精力都放在了兼容性上。

博主也说,也许Vim一些有用的功能让出名,但是能让Vim一直都屹立不倒的原因是,它几乎兼容了所有你能想到的东西。

这也是很多程序员的爱用Vim主要原因。而除了兼容性强的优点,强大的键位设计,自行设定快捷键等这些都让Vim成为提升工作效率的绝对利器呀!

让人又爱又恨

Vim诞生的时候,鼠标还不是电脑标配,所以Vim尽量为纯键盘操作而优化。

而后来图形化界面、鼠标的普及,让更过代码编辑器脱颖而出,配合鼠标操作学习门槛低,但效率不及Vim老手。

这也是Vim让人又爱又恨的原因吧。

谈到Vim,国内的程序员怎么看?首先是入门难度大:

用Vim写接口还行,不过还是需要学习下Vim的快捷键,不然太痛苦了。

但是用熟了之后,简直能把Vim用的飞起:

熟悉了之后确实操作起来很快,特别不喜欢用上下左右键。

       

还有Vim重度使用者来现身说法,真正的Vim高手,是不需要鼠标的~

就因为喜欢上这种双手不离键盘就可以操控一切的feel ,Vim可以让我对文本的操作更加精准,高效。

不过,这位网友也提到,对初学者可能不是特别友好,因为Vim有一定的学习成本,只有做到非常熟练才能感受到它带来的快捷。

如何花式退出Vim?

那么回到一开始的问题,怎么退出Vim呢?

吐槽归吐槽,你觉得Vim好用吗?你在写代码的时候又用着哪一款编辑器呢?

参考链接:
https://pragmaticpineapple.com/how-did-vim-become-so-popular/

免责声明:本文素材来源量子位,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

推荐阅读:
代码对齐使用Tab?还是空格?
的区别?" tab="innerlink" data-linktype="2" rel="nofollow">#include使用“”和<>的区别?
手把手教你用铁丝做Arduino UNO板

关注 微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。


长按前往图中包含的公众号关注

strongerHuang 作者黄工,高级嵌入式软件工程师,分享嵌入式软硬件、物联网、单片机、开发工具、电子等内容。
评论 (0)
  • 探针台可以按照使用类型与功能来划分,也可以按照操作方式来划分成:手动探针台、半自动探针台、全自动探针台。手动探针台系统顾名思义是手动控制的,这意味着晶圆载物台、显微镜以及定位器/操纵器都是由使用者手动移动的。因此一般是在没有很多待测器件需要测量或数据需要收集的情况下使用手动探针台。该类探针台的优点之一是只需要很少的培训,易于配置环境和转换测试环境,并且不需要涉及额外培训和设置时间的电子设备、PC或软件。由于其灵活和可变性高的特点,非常适合研发人员使用。全自动探针台相比上述两种添加了晶圆材料处理搬
    锦正茂科技 2023-06-02 11:49 200浏览
  • 5月24日至26日,第十六届(2023)国际太阳能光伏与智慧能源展览会(SNEC)在上海举行,“新能源人”齐聚一堂。时隔两年,SNEC展会吸引了超过50万人注册,3100多家企业出席,吸引大批海内外观众前来,展览规模创世界之最,无疑把新能源的市场热度再次推向一个制高点。 势能资本创始人黄俊受邀出席 SNEC 第七届国际储能技术和装备及应用(上海)大会。会上,黄俊发表题为《储能领域的资本市场和创新机会》主题报告,分享势能资本对当前全球储能产业复杂竞争格局的思考,并探讨国内储能产业未来的
    势能资本 2023-06-02 10:48 305浏览
  • 过电压保护器采用放电间隙给氧化锌阀片分压的方法,降低产品的操作冲击保护残压,来实现对操作过 电压的保护;与此同时采用四星型接法,也叫做三叉戟式接法,设置公共中性点,实现对相间过电压的 快速响应,有效的防止三相负载出现相间绝缘击穿。 针对ZB-TBP-35kV/310型过电压保护器的型式试验报告都检测哪些项目呢? 先要对最为直观的项目进行检查,就是过电压保护器的外观。 检测内容:1、外观表面单个缺陷面积不能超过5mm²    &nb
    保定众邦电气 2023-06-02 14:17 244浏览
  • 软件介绍Vayo-Stencil DesignerVayo-Stencil Designer(简称VSD)是一款面向企业的专业钢网设计软件,可以为企业高效构建适合企业自身产品和工艺know-how的数字化开口规范,解决钢网开口审查、局部开口设计、完整钢网设计、PIP焊料填充率计算等场景需求。场景介绍First Frost场景一:工艺数字化开口库构建和管理专利技术智能学习功能,将企业量产验证的钢网自动学习到钢网开口数据库,绝大部分企业1~3天即可完成企业数字化钢网开口库的构建,将企业钢网开口Kno
    望友科技 2023-06-02 13:16 246浏览
  •          2020年初,作为ICT的老兵,无可意外的遇到了“安可”和“信创”,而在琶洲听了倪光南院士的网信安全讲座,更是燃起了中国人的民族自尊心,我想既然工作可以为国家的战略贡献一点点力量,就扎根信创,做出点样子。      随后的事情,华为一次制裁,曙光制裁,华为二次加严制裁,飞腾被制裁,长存被制裁,更多更长的实体清单,给信创的发展带来了巨大的障碍,也严重的冲击了从业者的信心。    &
    天涯书生 2023-06-03 10:17 253浏览
  • 汽车电子电气架构(E/E架构)的升级主要体现在三大层面:硬件架构从分布式向域控制/中央集中式方向发展,软件架构从高耦合向分层解耦方向发展,通信架构由LIN/CAN 总线向以太网方向发展。在汽车智能化趋势下,立足于E/E架构,将功能安全和信息安全的方案融入整车架构、系统需求与软硬件设计,同时基于实际运行,持续验证和迭代功能安全和信息安全设计,从而进一步保障智能汽车全生命周期的安全。现阶段主要处于域集中式阶段,各主机厂量产的E/E架构方案主要分为三种:功能域、跨域融合、中央计算平台+区控制器。201
    可可盖世大学堂 2023-06-02 10:48 251浏览
  • 电车怎么充电最省钱跟燃油车相比,纯电动车充电费用确实比加油要便宜很多。但是老话说的好“吃不穷穿不穷,算计不到就受穷”,其实在充电这件事上还是有很多省钱小窍门儿的。比如说:充电站所在的停车场停车费贵不贵?在公共充电站充电时,充电费用是否执行峰谷电价?别看这些都是小钱,但是积少成多之后,可能就是一笔可观的费用。今天四川英特丽小编就来给大家介绍一些充电时比较省钱的方法。我们的电费都由哪些费用组成?其实,在纯电动车的日常充电中,我们最后的“充电费用”可能由三部分组成:电费、服务费和停车费。前两种费用在公
    四川英特丽科技有限公司 2023-06-02 08:40 159浏览
  • 黄世勋 | 生成式AI |COMPUTEX2023英伟达 | 大模型 | 台北电脑展 |GH2002023年是大语言模型、生成式AI、ChatGPT、AIGC大爆发的一年。GPU是大规模深度学习、高性能计算的重要硬件基础,而大语言模型,如生成式AI、ChatGPT等,则借助GPU的计算能力快速地训练和推理,获得更高的模型效果和更广泛的应用场景。尤其在游戏开发领域,运用大语言模型可以加强游戏的情节推进、人工智能角色表现等方面的体验,而加速训练的英伟达GPU则
    蓝海大脑GPU 2023-06-02 11:55 235浏览
  • 一、去年在调试MARVELL 88E6320,交换机功能调通。剩下SMI通讯去访问芯片寄存器,这个功能可有可无,调不通的话就当作傻瓜交换机用。所幸调通,也是迷迷糊糊,自己太菜鸡了~二、下面分享一下调试过程第一篇 port 操作 只有2个寄存器可以直接访问,命令寄存器(0x00)和数据寄存器(0x01),其他寄存器要通过这两个寄存器访问。 读写流程 读写某一个功能寄存器的时候,必须通过命令寄存器(0x00)和数据寄存器(0x01)实现 读指令 先往命令
    LIN 2023-06-02 10:00 193浏览
  • “七天制作新游戏”、“AI全自动完成所有游戏!”......继各种AI绘画、AI合成照片、视频之后,AI在游戏领域开启了新一场狂欢。长久以来,游戏和AI一直有着“相互扶持”的亲密关系——一边是游戏充当AI科研基地,正向拉动AI技术进步;一边是AI定位为先进的技术工具,为游戏体验带来更多可能性。如今,ChatGPT彻底引爆AI领域,与人工智能有所关联的行业深受影响,游戏和AI之间的关系亦有了更深层次的连接。AI是游戏的活水源伴随着AI绘画、AI合成图片视频接连爆火,AI技术应用的重要性愈加突出,“
    刘旷 2023-06-02 10:27 153浏览
  • 一、前言在这个数字化时代,物联网HMI已成为连接人与设备之间的关键纽带,为用户提供直观、智能的交互体验,背后强大的关键驱动力扮演着至关重要的角色,其中SCADA级功能库和控件库的引入成为了物联网HMI设计和开发的核心要素。SCADA级功能库为物联网HMI带来了出色的数据可视化和边缘计算能力,能够实现对复杂系统和设备的实时监测与控制,协助用户快速制定和执行生产决策;SCADA级控件库为物联网HMI提供了丰富的交互元素和可视化控件,创建出直观、个性化的可视化界面,满足不同应用场景的需求,提供更好的用
    工业物联网技术 2023-06-01 21:46 173浏览
  • RKNN(Rockchip Neural Network)是一种用于嵌入式设备的深度学习推理框架,它提供了一个端到端的解决方案,用于将训练好的深度学习模型转换为在嵌入式设备上运行的可执行文件。使用RKNN框架可以在嵌入式设备上高效地运行深度学习模型,这对于需要在资源受限的设备上进行实时推理的应用场景非常有用。例如,可以将RKNN用于智能摄像头、机器人、无人机等嵌入式设备中,实现物体检测、人脸识别、图像分类等人工智能功能。RKNN-Toolkit2是为用户提供在 PC、 Rockchip NPU
    飞凌嵌入式 2023-06-02 11:23 207浏览
  • 目前已知WDM波分复用技术有很多种,如:FBT (熔融拉锥,Fused Biconical Taper)、FBG(光纤布拉格光栅,Fiber Bragg Grating)、TFF (薄膜滤波, Thin Film Filter)、AWG (阵列波导光栅, Arrayed Waveguide Grating)、EDG (刻蚀衍射光栅,Etched Diffraction Grating)、MZI (马赫-曾德干涉,Mach-Zehnder Interferometers)、MRR (微环谐振器型,
    hycsystembella 2023-06-02 11:11 213浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦