资讯专栏INFORMATION COLUMN

还有必要学Vim吗?

ytwman / 2741人阅读

摘要:在这样一个时代,还要学这种中古的技能吗我来讨论一下为什么要,不但要,而且必须要。其实要说功能强大,的产品无疑都很牛。这也是造成它学习成本高,被人吐槽多的原因。出现之后,包括等等在内的各种创新涌现了出来。

曾经有一段时间,编辑器领域的创新停滞了。在web编程走红,尤其是electron出现之后,这个领域又上了一个新台阶。Atom, VsCode等等替代了之前唯一的但是臃肿的跨平台选择 - Java。一时之间,大家都开始用网页来写代码了。

在这样一个时代,还要学Vim这种中古的技能吗?我来讨论一下为什么要,不但要,而且必须要。

Vim仍然是最高效的编辑器

Vim仍然在高速进化

Vim是编辑器领域的Javascript

高效

Vim的学习曲线是出了名的高。但是这背后是高投入,高产出的效率。

随便举几个例子:dd删除一行,两个键搞定。普通的编辑器可能要这样的组合才能搞定。
w可以跳过一个单词,普通的编辑器要才可以搞定。一半的按键,还不包括远离中原的Ctrl键。mM记住一个位置,"M随时跳转到该位置。一般的编辑器...说实在的我并不知道一般的编辑器如何做类似的操作。在VsCode的菜单里扫了两边也没找到。

这只是九牛一毛。而且用的时间越久,你积累的技巧就越多,你的效率就越高。

高效的另外一面是:反应快。其实要说功能强大,JetBrain的产品无疑都很牛。但是在大脑高速运转的时候,思维到屏幕上字符的转化过程减少2-300毫秒导致体验的差别是巨大的。就好像。。。。

其实Vim的高效很大程度上应该归功于所谓模式编辑 - Vim于大多数编辑器不同,有insert,
normal,
visual等等几个模式。这也是造成它学习成本高,被人吐槽多的原因。最近网上疯传的段子就是“如何退出Vim”。各种欢快的图片层出不穷。这里忍不住贴一个疯狂的图片。如果你看到这个图片决定不学Vim了,那是你的损失。反正我觉得这酷毕了。

进化

Vim 从Vi进化而来,为一个略显骨感的编辑引擎加入了诸多特性:

跨平台

语法高亮

diff

split

plugin和vimscript....

在大约两年前,neovim出现了。它主要做了这么几件事:

将Vim的开发方式带入21世纪

加入async方式

远程控制

Vim的开发一直都是一个个人秀。当kernel已经从patch迁移到CVS迁移到bitlocker迁移到git的时候,当sourceforge已经经历了诺基亚式的巅峰到谷底的时候,Bram还基本停留在N年前的模式。当然,Vim首先是一个个人项目,无论怎么做都不过分。但单从技术进步的角度来讲,这确实是逆潮流的。

async看来是一件小事,但是却从根本上移除了用户体验的绊脚石。neovim出现之后,包括ALE等等在内的各种创新涌现了出来。甚至Vim8也不上了这个缺口。这个领域发展的速度一下子从步行编程了摩托车,出来一两个伟大的产品一点也不出奇。

远程控制用一种叫做msgpack的IPC将编辑核心和UI彻底分割了。方便了UI编写者。其中一个令人振奋的就是和VsCode的集成。

写这篇文章的时候,恰逢neovim最新的newsletter发出。有兴趣的可以戳这里看看。

Javascript

我在拿编程语言和一个编辑器做比较吗?我喝多了?

现在流行,甚至不怎么流行的编辑器或IDE,都支持插件。而在这些插件里面,总有一个插件是不会缺席的,那就是Vim。JetBrain有IdeaVim,VsCode有,Atom有,Sublime有,Chrome, Firefox也有,连Office都有,还收费! 这里面有一个逻辑,不是因为Vim很流行,而是Vim有意无意地创造了一种编辑的语言。比如dw,yy, g, gg等等。这些快捷的命令在熟悉之后,不再是简单的命令而已,而成为可以组合的元素。你不会在思考用什么样的命令,而任由你的指头自行在键盘上跳动,进行它自己的编程。

学会了Vim之后,无论什么IDE,无论在什么平台上,都无需再学习另外一套键盘快捷。可谓一劳永逸。例如现在如日中天的VsCode,有非常多的快捷键,而且每个平台各有不同。但是只用安装一个Vim插件,这些快捷键都不用学了。

之所以和Javascript比,是因为:几乎所有的语言都可以transpile成Javascript; 几乎所有的编辑器和IDE,都支持Vim插件。

人生苦短,快学Vim!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24992.html

相关文章

  • Write with Vim (1)

    摘要:学习使用就是在命令行中输入第一步我个人认为是最难的一步。依然很水,不会的配置上网搜索然后到自己的中。走到进阶就差不多懂得为何物因为可能受不了自己中的字体,配色,以及目录或者括号匹配等等问题。希望本文对于想要学习的你有所帮助。 本文出自Svitter的blog 原文在之前的也曾发表 Write with Vim (2) 大约在一年前使用vim?这个也是个不确定的时间。具体什么时间...

    douzifly 评论0 收藏0
  • SegmentFault 社区访谈 | 依云: 一只想依偎在云上的野百合

    摘要:依云酱呢,是一名资深用户已经不会用现在的的,喜欢同时也属蛇,看来是命中注定,最近喜欢上了不是那个黄褐色的铁氧化合物哦。清蒸依云酱,我快死在你的标题上了。 showImg(https://segmentfault.com/img/bVRChj?w=900&h=385); 社区访谈的上期说到上帝有明是如何通过他的个人魅力撩得妹纸归,回忆传送门,不过逗得了妹纸笑,引得了汉纸拜(唔,崇拜的拜,...

    wizChen 评论0 收藏0
  • SegmentFault 社区访谈 | 依云: 一只想依偎在云上的野百合

    摘要:依云酱呢,是一名资深用户已经不会用现在的的,喜欢同时也属蛇,看来是命中注定,最近喜欢上了不是那个黄褐色的铁氧化合物哦。清蒸依云酱,我快死在你的标题上了。 showImg(https://segmentfault.com/img/bVRChj?w=900&h=385); 社区访谈的上期说到上帝有明是如何通过他的个人魅力撩得妹纸归,回忆传送门,不过逗得了妹纸笑,引得了汉纸拜(唔,崇拜的拜,...

    fredshare 评论0 收藏0
  • Vim 的哲(四)

    摘要:的哲学第四篇姗姗来迟,狗血的原因我就不多说了,好消息是我将为这个系列带来一些动态演示。所以目前为止你学会上述四个动作指令就足够了。以词为单位使得我们可以更精确也是更具语义化的移动光标,并且要比逐个字符的移动要快得多。 Vim 的哲学第四篇姗姗来迟,狗血的原因我就不多说了,好消息是我将为这个系列带来一些动态演示。原本我打算录视频的,但是文章都写了那么些篇了,现在再录视频似乎晚了些,所以我...

    xiao7cn 评论0 收藏0
  • 前端是有多难?

    摘要:我之前从来没想过高阶函数怎么在里面用,直到看了源码吃了一惊,卧槽,还能这么写还有说烂了的柯里化。然而也加重了前端的负担。毕竟和前端靠的近,人家问起来自己不会多尴尬。好了,一个前端工程师做到这份上也算是仁至义尽了。 最近感觉追不动前端的发展了,写篇文章感叹一下。 HTML 我知道有一些学校会教一些简单的网页制作,就是用 Dreamweaver 点一点的那种。大多也会留作业,最后交作业的时...

    habren 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<