本文旨在反驳一些居心叵测的人:文章链接(可以不用看,我已引用不少了)
首先说明,我是一位Vim用户,并且在Vscode中安装了Vim插件。
开头:捏造事实
班里有这么一些同学,他们每天大谈特谈 Vim 优势论,认为 Vim 才是极客的风景,还创造了鄙视链,谈及使用 Nano 和图形化编辑器(如 Sublime, VSCode)的同学则群聚而笑之。
此为捏造事实。这段话运用大量副词,如"每天"“大谈特谈”,事实依据无从谈起,只是为了渲染氛围。并且,上文所提"鄙视链"云云,其实并不存在。我只是在某些同学热衷于Nano的时候,对其发表了我的观点:唉,要是你用Vim花的时间会少一半。同时,我个人也是VSCode的用户,"群聚而笑之"从何谈起?
第二段:欲抑先扬
诚然,Vim 是程序员在长期编写代码的实践过程中的智慧结晶。快捷的光标移动,到 esc 的返回菜单栏,无不闪耀着快捷高效的光辉。
无可否认的是,这位同学也在熟悉 Vim 快捷键上苦练基本功。Babysteps 有之,用户手册有之,使得他对 Vim 了如指掌。然而,更进一步呢?
嗯那确实。
三个分论点
第一:眼中只有鄙视链,蓄意挑起对立。
他利用 Nano 环™ 的属性认知,则是在挑起无意义的争论,正被全网封禁的卢氏风格,将人群分成 “苹果”、“安卓” 的 “三六九等”,实则体现的是形式主义和官僚主义的流弊。不同的编辑器有其不同的特点,尤其不同的使用条件和范围。Vim 用于编辑长篇大论,因为它高效;Nano 用于临时短篇,因为它轻量。事实上,这位同学本人也在编辑某些配置文件时偷偷使用了 Nano。
这一段其实说的十分中肯,但是和前面的毛病一样,还是捏造事实,在此不过多阐述。不知所谓无意义的争论是谁在挑起?
第二:精益求精不彻底,用法不伦不类。
Vim 的精髓在于完全的键盘化,完全地脱离 GUI。然而,这位同学依然沉迷于 Windows 的怀抱,仍然摆脱不了 VSCode 的温床。他在 VSCode 中安装了 Vim 快捷键插件,以此在图形化 VSCode 的当中使用 Vim 快捷键。这样的用法会产生许多弊端。
这里可以说的点就多了。
-
首先,我坚信GUI的诞生绝对是历史的一大进步,而且GUI确实有许多比传统终端方便的地方。谁说Vim完全地脱离GUI?
-
显然,这位同学认为Vim与VSCode只能取其一。这是谁给他的错误认知呢?事实上,Vim的早期版本就有了GVim等支持GUI的版本,这说明Vim的开发者也看到了GUI的合理性。
-
GUI与Vim完全可以共存。这位同学认为“使用Vim就必须放弃现代IDE”,这是典型的非黑即白思维。事实上,在VScode中使用Vim完全不会有任何问题,这位同学所说的“弊端”也是模糊不清。有什么弊端?快捷键冲突?请打开settings.json,写入几行,立刻解决。还有什么别的,说清楚,我也想听听。既然不说,我想是他个人不了解的原因吧。
-
Vim为什么快?是因为终端吗?这个观点十分的荒谬。试问这位同学,有什么Vim的功能是必须在终端环境下才能发挥完全的?Vim快速的核心在于他的“模式切换”“组合命令”等关键思想,与终端无任何关系。同时,在终端环境下的Vim,缺少VSCode中的可视化调试,代码导航等等功能,用VSCode+Vim无疑是如虎添翼。
第三:不分场合一味用,时常盲目排外。
这位同学的偏执,还体现在他试图用 Vim 这把“锤子”去敲所有的“钉子”。比如,在需要富文本编辑、图形化调试(GUI Debugging)或是团队实时协作(Live Share)时,现代 IDE 提供的集成环境显然更有效率。但他罔顾这些应用场景的差异,盲目排斥这些工具,甚至在团队协作中,强行要求他人迁就他的编辑习惯。这不仅降低了团队的整体效率,也违背了技术服务于协作的初衷。
这段话无事实依据。不予置评。
结尾
综上所述,Vim 诚然是一款强大的工具,但工具终究是为人服务的。沉迷于工具带来的优越感,制造对立,忽视了工具的适用性,甚至用法都“不纯粹”,这便舍本逐末了。真正的“大神”,应当是海纳百川,手中有“Vim”,心中也有“VSCode”,择其善者而从之,在合适的场景选用合适的工具,而非画地为牢,成为工具的“信徒”。
这段话实际写的很好。可惜是对心中的假想敌说的。
总结
这位同学的文章客观上来看主要思想是十分正确的,只有少部分(比如第三个分论点)值得商榷。然而,这位同学的主要问题是热衷于树立假想敌。对此我完全可以感同身受,详见我上一篇博客关于明日方舟兔头同学的一些看法。还不是因为无聊嘛。当然,写这篇文章的我也很无聊。