为啥有的程序员极度推崇 Vim 和 Emacs,却对 IDE 嗤之以鼻

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥有的程序员极度推崇 Vim 和 Emacs,却对 IDE 嗤之以鼻相关的知识,希望对你有一定的参考价值。

起初学习Linux和Vim, 纯粹是虚荣心或者说那个时期叛逆心理的作用, 当时对Linux和Vim一知半解但是总是对同学说, Vim多好多好, 其它编辑器都是渣渣. 当然当时对IDE还存在着崇拜心理, 只不过偶尔听到某某大神说, IDE会让人屏蔽很多细节, IDE什么都帮你做了, 你会变傻的. 从那时就有了一种, IDE挺强大, 但是Vim更利于学习, 学生么, 当然学习为主, 慢慢开始排斥IDE…

后来, 大学毕业, 工作是在嵌入式系统里编程, 或者是在linux服务器上写服务, 主要都是C语言的. 根本用不到IDE加之之前学习的, 基本上IDE的能够实现的功能, 用命令行+Vim基本都能实现. 逐渐自己慢慢在和别人的交流中就变化了. 出口Windows垃圾, IDE渣渣, 用IDE基本就是低端的象征, 当时的思想极端到自己用C语言, 连C++都看不上, 更别说JAVA或者C#之流, 所以IDE进一步在我的世界里疏远, 并且开始有主动鄙视IDE行为. 当时极端到什么程度, 到一台新电脑上, 总是把命令行窗口最大化或者干脆直接切文字终端, 别人看见以后总会投来膜拜的眼神, 自己洋洋得意, 其实在命令行下也没干什么…回想一下, 太天真.

在后来, 工作越来越忙, 看的代码写的代码越来越多. 由于工作原因Vim成为了必须用的东西, 因为好多项目, 都是用命令行编译, 好多vim编辑的痕迹, 自己为了更快速方便的工作, Vim就用的更多更好, 逐渐发现, Vim确实好用, 而且非常好用. 这个时候我就能真正的说, Vim真的增加了我的工作效率. 这时候一个事情改变了我的想法, 一个同样热爱命令行, 热爱vim同事, 但是他的工作是JAVA, 人家在浏览代码的时候只需要Ctrl+鼠标就可以完成跳转到类定义, 但是他还要用grep, 找关键词, 用vim打开, 然后修改. 我开始变的不理解他的行为, 开始转变对IDE的看法. 合适场景用合适的工具. 最后有意思的是, 那位vim达人最后因为公司让他长期搞Java, 他终于选择了离开, 去了一家知名的做路由器的公司做底层了, 听到这些的时候, 我心里其实蛮开心的.

现在, 我开始做ios编程, 等于说换了行业. 这时即使Vim再牛逼在快, 它也完成不了Xcode所能完成的事情, 从项目创建, 到自动添加所需的库, 自动的笔误的代码, 最后打包签名上传. 有人会抬杠说, 这些其实在Mac OS X中都可以用命令行做到. 我想说的是, 能做到又怎么样?你用命令行写的App能在总榜排到第几? 话说回来, 我现在是Xcode + XVim插件, 在编写程序的时候, 还是Vim习惯, 做其他事情的时候用XCode功能, 这不是两全其美么, 效率还奇高. 现在我是不愿意参加什么Vim牛逼还是IDE牛逼的圣战了, 如果讨论怎么把App或者游戏做到总榜前10我还有点兴趣.

总结:
回想一下, 如果一个人总是在说Vim或者Emacs牛逼IDE是渣渣不要怪他, 先看看他做的事情, 如果做linux kernel他能用什么IDE, 完全可以鄙视他; 如果他为开源贡献了xx行代码, 为linux贡献了xx代码, 牛人总有牛的道理, 偏执狂才能改变世界么; 但是如果他搞的是神马框架或者Java, C#之类的, 用Vim和Emacs是不是在折腾自己呢, 不如看看他用工具做出来的东西怎么样吧. 其实, 这些都是工具, 能用工具给养活自己, 甚至帮助别人, 对这个世界能有贡献是不是更重要的事情呢? 年轻的时候用外表, 用自己用的工具, 用Vim用Emacs来证明自己牛逼是太正常的一件事了, 因为自己还年轻, 不足以那那些实在的事情来证明.

最后:
如果让我选择用Vim还是IDE来证明自己, 我当然是愿意用Vim. 因为Vim才是我喜欢的范, 但是如果别人用IDE来证明了自己, 我也同样会拍手叫好, 因为他们已经证明了, 用什么重要么?
发布于 2013-12-07 19 条评论

赞同
19
反对,不会显示你的姓名
陈达野,"Vim用户"."Linux爱好者"."GFW受众"
知乎用户、赵文博、ccoder 等人赞同
科普:
1.vim里删除一行是dd,删除一百行是100dd,不需要进入什么命令行。除非您用的不是我们这个世界的vim。
2.有个名叫make的程序,只要在一个名叫makefile的文件里写好编译规则(也可以通过一些工具自动生成)就可以编译,不需要你输入大堆的编译命令。只要在vim里绑定一个快捷键就可以像vs一样的一键编译。vs里也有一个叫nmake的东西,用来干差不多的事,你可以在你的vs的安装目录里找到。我的vim配置里专门给F5绑定了一个函数来实现一键运行,会通过文件类型判断该怎么做。是python脚本就调用python,是shell脚本就调用/bin/bash,是html就调用浏览器,是c就调用gcc进行编译然后运行,我真的不知道要输入命令干嘛。

说说我用vim的原因:
1.我不是java程序员也不是c#程序员,用不着vs或者eclipse。
2.上面很多人说过了,ssh连接到linux服务器上,除了vim或者emacs还真不知道有啥编辑器好用。
3.我懒。用vim用不着正襟危坐。往椅子上一躺(那角度真的是躺),双手懒洋洋搭着键盘,手指啪嗒啪嗒的敲就行了,手肘从头到尾都不用挪位。

PS:作为一个vim爱好者我从不会鄙视用IDE的,我只鄙视用IE的。
编辑于 2013-08-20 9 条评论

赞同
388
反对,不会显示你的姓名
仲晨,人生的路啊,都是自己选的
赵胜利、周笑镭、Dragoon Bentus 等人赞同
实用是好事儿,但经常会丧失解决复杂问题的便捷性。
比如处理数据,简单的我也用Excel,但用着用着,碰到诸如特定需求的排序去重,不仅得绞尽脑汁旁门左道,还得查半天函数手册。下次,我不如直接写bash脚本或python处理来的快,尽管它们入门学习成本较大,但能够在未来的路上让我避免掉大量Excel本身的局限性。
参考技术A 1、vim/emacs,30年前就有了。至今并没有太大的变化。30年前熟练掌握vim的用户至今依然能熟练使用最新版本vim。并且这个延续了这么多年使用习惯的编辑器依然能够通过扩展具有最新的功能,能适应最新的编程语言。缺省安装无配置的情况下就能够具有成千上万种文件的语法着色,这是其他编辑器无法做到的。
2、而ide呢?30年前的ide,现在还有能用的?你若是用多年前的ide,根本无法适应新的编程语言,或者无法适应新的语言标准,或者无法适应新的操作系统。
3、你18岁学会了编程,可以用vim/emacs,一直用到48岁。但如果你用ide,你每过几年就得换个新ide,30年恐怕换过10个。
4、所以,为什么有人吹捧vim/emacs?是因为有人认为,程序员没必要花费大量时间用在不断的更换ide,学习新ide上面。而如果用vim/emacs,除了最初的一年半载有个新鲜感有个折腾劲,之后的几十年里,你再也不需要操心编辑器的事儿。
参考技术B 1、vim/emacs,30年前就有了。至今并没有太大的变化。30年前熟练掌握vim的用户至今依然能熟练使用最新版本vim。并且这个延续了这么多年使用习惯的编辑器依然能够通过扩展具有最新的功能,能适应最新的编程语言。缺省安装无配置的情况下就能够具有成千上万种文件的语法着色,这是其他编辑器无法做到的。
2、而ide呢?30年前的ide,现在还有能用的?你若是用多年前的ide,根本无法适应新的编程语言,或者无法适应新的语言标准,或者无法适应新的操作系统。
参考技术C 可能爱好自由是很多程序员的天性吧,有什么不能满足我的,或者我有什么想法,我希望能够自己去实现或者定制化,而很多IDE可能自由度不是那么高。 参考技术D 有一种本能叫装13,是好斗本能的扭曲表现。程序员情商低,无法压抑这种本能。

两张图学会VIM编辑器

作者:徐刘根

来源:

http://blog.csdn.net/xlgen157387/article/details/53184811


Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs同样都是非常优秀的文本编辑器。Vim(和Vi)一个最大的优势在于它最常用的命令都是简单的字符,这比起使用复杂的控制组合键要快得多,而且也解放了手指的大量工作,学习使用这些命令的时间很快。

Vim使用快捷键组合

技术分享

Vim键盘图

技术分享

文章来源:马哥教育

官方微信:马哥linux运维

技术交流群:537045784

本文出自 “马哥Linux培训” 博客,请务必保留此出处http://mageedu.blog.51cto.com/4265610/1917271

以上是关于为啥有的程序员极度推崇 Vim 和 Emacs,却对 IDE 嗤之以鼻的主要内容,如果未能解决你的问题,请参考以下文章

21 学会 Emacs:从入门到放弃?

VIM 编辑器操作指南

Vim学习与使用

Vim学习与使用

VIM常用操作

独爱 Vim 的Linux老司机理由竟然是这个!!