写点什么

为什么我不是 Vim 的狂热粉丝?

  • 2022-08-03
  • 本文字数:2200 字

    阅读完需:约 7 分钟

为什么我不是 Vim 的狂热粉丝?

有大量的开发人员在开发过程中使用 Vim,我是那些认为 Vim 很糟糕的人之一,听我说说吧。

 

前不久,我在之前的一篇文章里曾说过,我非常讨厌使用 Vim 来进行开发,很多人对我和我的看法提出了疑问。本文不仅阐明了这个问题,也解释了为什么我没有将 Vim 推荐给别人用于开发。

 

我敢肯定有些人不赞同我这些观点,这是好事。以下列出的一切都是我个人的观点,每个人的观点也都不同,如果是这样的话,或许我会让你改变主意,让我们开始吧。



而且,标题是“为什么我不是 Vim 的狂热粉丝”,而不是“为什么你应该停止使用 Vim”。总之,这就是我的观点,别把它当回事。


Vim 是什么?

 

Vim 是一款基于终端的文本编辑器,它可以被配置成几乎任何东西,从一个基本的功能编辑器到一个完整的、功能丰富的 IDE。

 

它采用了“模式系统”,你可以通过“i”、“ESC”以及其他一些键来进行各种模式的切换,比如插入模式、可视模式、正常模式等,并与文档进行交互。



默认情况下,Vim 看上去是空的,但在定制方面,文本编辑器可以被做成接近任何东西的样子。至少对 Vim 来说,定制是最大的关键。更不用说,这款文本编辑器几乎可以塞进任何功能,并被重新加工成其他类似的文本编辑器。一些类似的编辑器包括 Vi、Neovim 等。

 

文本编辑器确实是一头“野兽”,可以被做成几乎任何东西。


我碰到的问题

 

然而,凡事总有坏处,Vim 中存在许多缺陷,让我无法将其用于开发中。以下是几条:

思想观念



对于所有想知道的人来说,你按了 Esc 键进入正常模式,然后敲“:q!”

 

作为一名开发者,所用的程序,可能应该照顾到从 git 到自动完成,到语法高亮,诸如此类。我是说,如果你是一名开发者,你显然更倾向于语法自动完成、git 集成、图形化,和其他一些缺省的功能,而不是我们花时间自己做,因为 Vim 是为开发者设计的。

 

Vim,让我们配置我们想要的东西。但是,这需要我们进行配置,而这些都是大家都需要的,并且可以在 Vim 中默认添加。

 

那么,你也许会问,那些不需要额外功能的人呢?这个问题问得很好。一些非开发者,他们也使用 Vim,不需要任何自动完成或者相似的功能。这就是 Vi 或者 vi-minimal,因此这应该是可行的。

 

工作流——不同的模式


要是你明白了这一点,恭喜你。你理解了 Vim 的工作流。

 

以另一款文本编辑器为例,比方说 Atom 或 Sublime,我们会有一个有“模式”的界面,你只需要输入你所需要的内容。这样既能节约时间,又能提高工作效率。

 

我是说,即使从逻辑上讲,在打字之前按“i”键,在拷贝之前按“Shift+V”组合键,这在工作时可能看起来是一件小事,但从长远来看,至少对我而言,是完全多余的。

 

也许有人会说,由于“模式系统”在很大程度上是基于键盘的,所以它可以帮助工作流。但是,即使是这样,我也可以 Atom 这种通用的文本编辑器,在任何地方都可以只用键盘和一种模式进行工作。

 

即使是最微小的事情,比如撤销,我们也必须要按 Esc 键,确保我们处于正常模式,然后再按“u”键,我想直接按“Ctrl+Z”组合键会更快捷。更不用说,要适应这个非同一般的工作流,将会耗费很多的时间。

 

基于终端


文本编辑器中的 vim

 

现在,也许很多人会认为这是一种优势。当然,作为一款可以直接从终端上打开的文本编辑器,它确实有很多优势。我的意思是,它大概就是我在 tty(CUI)界面中所用到的文本编辑器。

 

不过,我个人觉得,它从终端上工作,存在很多缺陷。第一个最大的缺陷是,除了文本之外,它无法看到任何内容,这看起来可能是件小事,但是对于那些经常涉及图形的游戏开发者却没有太大的用处。同时,我可以在 Atom、Sublime 之类的文本编辑器快速查看任何意图。

 

很耗费时间……



Vim 是一款需要花费大量的时间来进行配置和使用的文本编辑器,但其实不值得。我说的是真心话。

 

我用了三四年的时间来建立自己的高配置 vimrc 文件,并且已经适应了 Vim 的基础工作流。不过,到了最后,我发现我可以用“普通”的文本编辑器来完成相同的工作,而不用花几年的时间来调整。更不用说,像 VSCode 这样的文本编辑器,只要登陆你的微软账户,就能得到所有你已经完成的“配置”。(译者注:原文有误,VSCode 并不能直接使用微软账户进行同步配置,要用到 Setting Sync 的 VSCode 插件才能做到同步配置)。而 Vim 则需要一个多小时才能做好充分的准备工作(那是我已经用了好几个月来建立我的 vimrc 并且已经适应的前提下)。比起 VSCode,登陆时间连 2 分钟都不到,你能明白我要表达什么意思吗?

 

太陈旧了(奖赏)



我称这是一种奖赏,因为陈旧总是不意味着坏,但有时候,它意味着过时。在我看来,Vim 对于这样一款文本编辑器来说实在是太过陈旧了,它仍然使用“hjkl”键来移动光标。对于那些不知道的人来说,在键盘真正实现单独的方向键之前,“hjkl”键是被当作方向键使用。

 

另外,还有一个简单的附带说明,那就是它在最近没有得到改进。我的意思是,Vim 在最近的几个发布版本中加入了一些不常用的命令,集成了一些新的插件,还有一些后端的小改动。与其他编辑器相比,它需要更快的开发进展。

 

总结

 

我将在 YouTube 上制作更多的视频,但我的观点是这样的:为了使文本编辑器更高效,Vim 的努力似乎有点过头了,而这种努力本身就没有抓住重点。

 

作者介绍:

 

FadinGeek,拥有多重身份:佛教徒、Youtube 播主、开发者、设计师和编辑。

 

原文链接:

 

https://medium.com/interviewnoodle/why-im-not-a-big-fan-of-vim-vim-like-text-editors-7120889dce1d

2022-08-03 18:336687

评论 9 条评论

发布
用户头像
防民之口, 甚于防川, 一个健康的人, 会害怕几声咳嗽就丢了性命吗?
2025-06-10 10:42 · 四川
回复
用户头像
真的服了,发个技术评论, 居然也能触发关键词?!, 而且也不知道是哪个关键词, 不知道会不会有一天, "关键词"也会成为关键词?
2025-06-10 10:39 · 四川
回复
用户头像
VS Code早就可以直接同步了

(译者注:原文有误,VSCode 并不能直接使用微软账户进行同步配置,要用到 Setting Sync 的 VSCode 插件才能做到同步配置)

2022-08-05 11:23
回复
用户头像
没有VIM的编辑器一概进入我的黑名单
2022-08-04 15:08
回复
为啥啊, 可以说说原因吗
2025-06-10 10:45 · 四川
回复
用户头像
如果一个编辑器没有VIM模式,那这个编辑器不值得使用。
2022-08-04 08:50
回复
为啥啊, 为何明明是 如果-那么 句式, 却感受不到半分逻辑?
2025-06-10 10:46 · 四川
回复
用户头像
感觉作者过于片面了,vim有vim的优势,其它文本编辑器也有各自的优势,并没有谁一定比谁好,比如,在vscode中使用vim插件,在可以全键盘快速操作的同时,也可以使用vscode的快捷键进行补充,例如使用command+z进行撤销,不冲突的,反而会更便捷。
2022-08-04 08:36
回复
mac相比Windows多了cmd键,对于vim使用者很友好,规避了许多快捷键冲突,Windows上系统的ctrl和vim的ctrl冲突,win键又很鸡肋,这也是我的工作电脑从win转到mac的一个原因
2022-08-05 17:05
回复
没有更多了
发现更多内容

CFlow价值流管理平台:让产研浪费可见、可管、可优化

嘉为蓝鲸

DevOps 智能运维 价值流管理 CFlow

TreeMap集合--底层原理、源码阅读及它在Java集合框架中扮演什么角色?

电子尖叫食人鱼

Java 数据库

SpringBoot集成测试笔记:缩小测试范围、提高测试效率

不在线第一只蜗牛

spring

IDC:擎朗智能全球商用服务机器人第一,持续领跑全球

财见

智象运维平台:用AI打造企业知识的“第二大脑”

智象科技

#运维 IT 运维 AI 大模型

Prompt Engineering 快速入门+实战案例

火山引擎开发者社区

AI 大模型

百万 TPS 服务发布无感知!详解轻量消息队列无损发布实践

阿里巴巴云原生

阿里云 云原生 消息队列

融资近10亿元,“众擎机器人”连续完成Pre-A++与A1轮融资,京东领投

财见

前端调试实践

京东科技开发者

『OpenCV-Python』加载网络图片

德育处主任

2025 年 Splunk 的 5 大替代方案:企业日志管理

运维有小邓

日志管理

TRAE Agent 在 SWE-bench Verified 上得分 75.2%,并已开源

火山引擎开发者社区

Trae

WeOps V5.24&V4.24新体验:AI提效文案,告警实时强提醒

嘉为蓝鲸

k8s 监控 智能运维 #WeOps

嘉为蓝鲸携ITSM亮相香港,以智能运维之力赋能港澳企业数字化转型

嘉为蓝鲸

数字化转型 ITSM 智能运维

面试官:如何实现大模型连续对话?

量贩潮汐·WholesaleTide

面试

B端体验深耕-洞察用户需求,打造心有灵犀的使用体验

京东科技开发者

中国工业互联网研究院《工业数据库规范》发布,涛思数据深度参与制定

TDengine

涛思数据 tdengine 时序数据库

【运维神器】自动巡检 3 大场景实测!资源浪费、配置混乱、节前焦虑全搞定!

智象科技

IT 运维 一体化运维 自动化巡检

腾讯云TencentOS Server V4 全面支持安全启动,适配CFCA签名,全平台开箱即用

极客天地

Column-Stores vs. Row-Stores: How Different Are They Really?

数新网络官方账号

数据库 大数据

[大厂实践] 从混乱的事件驱动到高性能服务 API

俞凡

架构 大厂实践

从采购到退役,一本账管到底 —— CMDB如何实现资产生命周期全流程可视化

智象科技

运维 CMDB 一体化运维

DevOps 评审管理:破解评审管理痛点,助力产研高效协同

嘉为蓝鲸

DevOps 智能运维 评审管理

揭秘字节跳动内部流量调度与容灾实践【下】

火山引擎开发者社区

火山引擎

CMDB 报表体系:设计原则与实践路径,赋能 IT 全流程管理

嘉为蓝鲸

CMDB 智能运维 报表体系

诚邀报名参会|2025开放原子开源生态大会开源鸿蒙主题演讲即将举办

新消费日报

新手小白开课了!适合小白的6种硬盘数据恢复的方法

阿拉灯神丁

EasyRecovery 数据恢复软件 mac硬盘数据恢复工具 数据丢失

【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型

阿里云大数据AI技术

人工智能 大数据 开源 数据处理 大模型

更强模型效果!豆包大模型 1.6 系列上线边缘大模型网关,最高申领1000万免费 Tokens

火山引擎开发者社区

火山引擎

智象科技赋能金融、证券行业 IT 运维

智象科技

IT 运维 一体化运维

Car Kit重构车机开发体验,让车载应用开发驶入快车道

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

为什么我不是 Vim 的狂热粉丝?_大前端_FadinGeek_InfoQ精选文章