AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

为什么我不是 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:335857

评论 5 条评论

发布
用户头像
VS Code早就可以直接同步了

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

2022-08-05 11:23
回复
用户头像
没有VIM的编辑器一概进入我的黑名单
2022-08-04 15:08
回复
用户头像
如果一个编辑器没有VIM模式,那这个编辑器不值得使用。
2022-08-04 08:50
回复
用户头像
感觉作者过于片面了,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
回复
没有更多了
发现更多内容

Atlassian被Forrester评为企业服务管理领导者,Jira Service Management助力提升团队服务水平

龙智—DevSecOps解决方案

Atlassian Forrester企业服务管理

ETL的数据挖掘方式

RestCloud

数据挖掘 ETL 数据集成

破晓未来·迎接智能新时代:混合 AI 大模型开发者工作坊震撼预告

阿里巴巴云原生

阿里云 云原生

解决Java中文显示乱码问题的原因与方案

霍格沃兹测试开发学社

AI+办公!5款超实用AI软件,一键生成PPT、视频、思维导图等!

彭宏豪95

人工智能 在线白板 AIGC 效率软件 AI生成PPT

Jira自动化的实用工具——ScriptRunner简介及最佳实践

龙智—DevSecOps解决方案

DevSecOps

ElasticSearch架构介绍及原理解析

霍格沃兹测试开发学社

Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹

霍格沃兹测试开发学社

Vue3 - 插槽 Slots

霍格沃兹测试开发学社

Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%

SelectDB

数据库 大数据 查询性能 物化视图 #数据分析

IT外包的三大优势对企业的发展有何影响?

Ogcloud

IT IT外包 IT外包公司 IT外包服务 IT外包企业

1688代采系统,淘宝代购系统,海外淘宝代购系统,淘宝代购集运系统

api开发

一文看懂如何做好 SQL 质量监控

阿里巴巴云原生

sql 阿里云 云原生

2024年AI辅助研发趋势:数智时代革新新引擎

EquatorCoco

人工智能 AI辅助

好用的AI绘画软件,一次安利给你

霍格沃兹测试开发学社

亮点功能:流水线编辑支持并行了!

Jianmu

DevOps

小白一眼就能懂的JSON简介与基本使用指南

霍格沃兹测试开发学社

MySQL安装最全最简教程

霍格沃兹测试开发学社

龙智携全方位芯片解决方案亮相IIC Shanghai 2024,助力客户解决复杂的芯片研发挑战

龙智—DevSecOps解决方案

芯片开发 芯片研发

企业云服务器免费使用后会存在哪些隐患?

一只扑棱蛾子

云服务器 企业云服务器

嘿!AI 编码新玩法上线!

阿里巴巴云原生

阿里云 AI 云原生

10个AI人工智能PPT生成软件,轻松搞定PPT制作!

彭宏豪95

人工智能 在线白板 AIGC 效率软件 AI生成PPT

继续总结Python中那些简单好用的用法

快乐非自愿限量之名

Python windows 开发语言

如何关闭Windows自动更新

霍格沃兹测试开发学社

李彦宏:程序员职业将不复存在,会说话就能当程序员;ChatGPT 日耗电超 50 万度丨 RTE 开发者日报 Vol.161

声网

低代码与鸿蒙开发:重塑软件开发的未来

不在线第一只蜗牛

低代码 鸿蒙开发 鸿蒙系统

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