为什么老编辑器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 作者黄工,高级嵌入式软件工程师,分享嵌入式软硬件、物联网、单片机、开发工具、电子等内容。
评论
  • //```c #include "..\..\comm\AI8051U.h"  // 包含头文件,定义了硬件寄存器和常量 #include "stdio.h"              // 标准输入输出库 #include "intrins.h"         &n
    丙丁先生 2024-12-20 10:18 71浏览
  • ​本文介绍PC电脑端运行VMware环境下,同时烧录固件检测不到设备的解决方法。触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566芯片,类树莓派设计,Laval官方社区主荐,已适配全新OpenHarmony5.0 Release系统!PC端烧录固件时提示没有发现设备按照各型号烧录手册中进入loader模式的操作方法,让开发板连接到PC端。正常来说开发板烧录时会显示“发现一个LOADER设备”,异常情况下,会提示“没有发现设备”,如下图所示: 解决步骤当在烧录系统固
    Industio_触觉智能 2024-12-18 18:07 79浏览
  • 在强调可移植性(portable)的年代,人称「二合一笔电」的平板笔电便成为许多消费者趋之若鹜的3C产品。说到平板笔电,不论是其双向连接设计,面板与键盘底座可分离的独特功能,再加上兼具笔电模式、平板模式、翻转模式及帐篷模式等多种使用方式,让使用者在不同的使用情境下都能随意调整,轻巧灵活的便利性也为多数消费者提供了绝佳的使用体验。然而也正是这样的独特设计,潜藏着传统笔电供货商在产品设计上容易忽视的潜在风险。平板笔电Surface Pro 7+ 的各种使用模式。图片出处:Microsoft Comm
    百佳泰测试实验室 2024-12-19 17:40 160浏览
  • 随着工业自动化和智能化的发展,电机控制系统正向更高精度、更快响应和更高稳定性的方向发展。高速光耦作为一种电气隔离与信号传输的核心器件,在现代电机控制中扮演着至关重要的角色。本文将详细介绍高速光耦在电机控制中的应用优势及其在实际工控系统中的重要性。高速光耦的基本原理及优势高速光耦是一种光电耦合器件,通过光信号传递电信号,实现输入输出端的电气隔离。这种隔离可以有效保护电路免受高压、电流浪涌等干扰。相比传统的光耦,高速光耦具备更快的响应速度,通常可以达到几百纳秒到几微秒级别的传输延迟。电气隔离:高速光
    晶台光耦 2024-12-20 10:18 116浏览
  • 耳机虽看似一个简单的设备,但不仅只是听音乐功能,它已经成为日常生活和专业领域中不可或缺的一部分。从个人娱乐到专业录音,再到公共和私人通讯,耳机的使用无处不在。使用高质量的耳机不仅可以提供优良的声音体验,还能在长时间使用中保护使用者听力健康。耳机产品的质量,除了验证产品是否符合法规标准,也能透过全面性的测试和认证过程,确保耳机在各方面:从音质到耐用性,再到用户舒适度,都能达到或超越行业标准。这不仅保护了消费者的投资,也提升了该公司在整个行业的产品质量和信誉!客户面临到的各种困难一家耳机制造商想要透
    百佳泰测试实验室 2024-12-20 10:37 125浏览
  •         在上文中,我们介绍了IEEE 802.3cz[1]协议提出背景,旨在定义一套光纤以太网在车载领域的应用标准,并介绍了XMII以及PCS子层的相关机制,在本篇中,将围绕IEEE 802.3cz-MultiGBASE-AU物理层的两个可选功能进行介绍。EEE功能        节能以太网(Energy-Efficient Ethernet)是用于在网络空闲时降低设备功耗的功能,在802.3cz的定义中,链
    经纬恒润 2024-12-19 18:47 73浏览
  • 汽车驾驶员监控系统又称DMS,是一种集中在车辆中的技术,用于实时跟踪和评估驾驶员状态及驾驶行为。随着汽车产业智能化转型,整合AI技术的DMS逐渐成为主流,AI模型通过大量数据进行持续训练,使得驾驶监控更加高效和精准。 驾驶员监测系统主要通过传感器、摄像头收集驾驶员的面部图像,定位头部姿势、人脸特征及行为特征,并通过各种异常驾驶行为检测模型运算来识别驾驶员的当前状态。如果出现任何异常驾驶行为(如疲劳,分心,抽烟,接打电话,无安全带等),将发出声音及视觉警报。此外,驾驶员的行为数据会被记录
    启扬ARM嵌入式 2024-12-20 09:14 70浏览
  • 百佳泰特为您整理2024年12月各大Logo的最新规格信息。——————————USB▶ 百佳泰获授权进行 USB Active Cable 认证。▶ 所有符合 USB PD 3.2 标准的产品都有资格获得USB-IF 认证——————————Bluetooth®▶ Remote UPF Testing针对所有低功耗音频(LE Audio)和网格(Mesh)规范的远程互操作性测试已开放,蓝牙会员可使用该测试,这是随时测试产品的又一绝佳途径。——————————PCI Express▶ 2025年
    百佳泰测试实验室 2024-12-20 10:33 87浏览
  •         不卖关子先说感受,真本书真是相见恨晚啊。字面意思,见到太晚了,我刚毕业或者刚做电子行业就应该接触到这本书的。我自己跌跌撞撞那么多年走了多少弯路,掉过多少坑,都是血泪史啊,要是提前能看到这本书很多弯路很多坑都是可以避免的,可惜这本书是今年出的,羡慕现在的年轻人能有这么丰富完善的资料可以学习,想当年我纯靠百度和论坛搜索、求助啊,连个正经师傅都没有,从软件安装到一步一布操作纯靠自己瞎摸索,然后就是搜索各种教程视频,说出来都是泪啊。  &
    DrouSherry 2024-12-19 20:00 75浏览
  • 沉寂已久的无人出租车赛道,在2024年突然升温了。前脚百度旗下萝卜快跑,宣布无人驾驶单量突破800万单;后脚特斯拉就于北京时间10月11日上午,召开了以“We,Robot”为主题的发布会,公布了无人驾驶车型Cybercab和Robovan,就连低调了好几个月的滴滴也在悄悄扩编,大手笔加码Robotaxi。不止是滴滴、百度、特斯拉,作为Robotaxi的重磅选手,文远知行与小马智行,也分别在10月份先后启动美股IPO,极氪也在近日宣布,其与Waymo合作开发的无人驾驶出行汽车将大规模量产交付,无人
    刘旷 2024-12-19 11:39 135浏览
  • By Toradex秦海1). 简介为了保证基于 IEEE 802.3 协议设计的以太网设备接口可以互相兼容互联互通,需要进行 Ethernet Compliance 一致性测试,相关的技术原理说明请参考如下文章,本文就不赘述,主要展示基于 NXP i.MX8M Mini ARM 处理器平台进行 1000M/100M/10M 以太网端口进行一致性测试的测试流程。https://www.toradex.com
    hai.qin_651820742 2024-12-19 15:20 127浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦