关于神的cf官网新英雄武器魔神emacs,还是cf官网新英雄武器魔神之神vi,你选什么。。。

一说起神级的编辑器,都会说 VIM 和 Emacs,那么这两个中,到底选择哪个比较好?或者哪个编辑器更适合于哪类人群?他们分别有什么优劣势?比如我是搞前端的,平时会涉及到 HTML、CSS 及 JavaScript 及少量后台代码/脚本的编写,那么应该选择哪一款比较好?入门使用有什么需要注意的?有没有相关教程/文档以供快速上手而不养坏胚子?
本人真正的原因如下1,希望拥有一个健康的小拇指。用T420的话,小指真的会痛的。2,VIM预装在几乎所有Linux里。本人经常要使用不同的服务器,还是内网,难道要到处装Emacs?3,极讨厌各种插件。VIM不用插件就很强大了,别听那些天天推荐插件的人,因为那些插件的功能绝大多数VIM自身都可以实现。不信这里有我给的几个小例子。
我用了四年Emacs,中间也用了一段时间Vi。现在主要用Emacs,用插件Evil-mode来模拟Vim键位,偶尔使用Vim来打开超大文件,或者很简单的操作。&br&&br&&b&Emacs Vs. VIM&/b&,Emacs和VIM之间嘴炮如此之多,一定有各自巨牛逼的地方,这篇文章写得简短清晰,直达本质。&a href=&///?target=https%3A///%40mkozlows/why-atom-cant-replace-vim-b4d1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Why Atom Can’t Replace Vim&i class=&icon-external&&&/i&&/a&。它说Emacs 最牛逼之处&b&Extensibility,可扩展性&/b&。而VIM最牛逼之处在于&b&Composability,操作的组合能力&/b&。这也是我使用Emacs+Evil的原因,Extensibility和Composability两者可兼得。&br&&br&&b&Emacs插件很多&/b&,很强大,当然vim下面也有同样强大的插件,除了org-mode,一直用它做笔记,非常好用,强大到逆天。&br&&br&&b&小手指的问题不是问题&/b&,用了Evil-mode之后,Ctl键频率小很多很多,但我还是把Ctl和Caps Lock对调了。对调的好处不仅在于使用Emacs方便,几乎使用所有软件都会有好处,只要你经常使用快捷键,并且快捷键中有Ctl键。比如在Chrome里面关闭标签Ctl-w, 关闭各种窗口。在Office中复制Ctl-c, Ctl-v。总得来说对调两个键之后,生活美好了很多,不仅仅在Emacs中。&br&&br&&b&Emacs的乐趣&/b&,在我看来,使用Emacs最大的乐趣来自于它的强大的&b&Extensibility,&/b&使用elisp来编写自己的插件。由于elisp基于Emacs这个牛逼平台,往往几十行,甚至几行elisp代码就可以写出强大的插件,大大方便你的操作。如果插件有通用性,还可以共享给他人,方便他人,并给开源社区作贡献。&br&&br&&b&如何学习Emacs?&/b&每个人都不一样,另外这个一点都不难。别被什么“陡峭的学习曲线”这种鬼话给吓住。我能想到的最快的方式就是看&b&Emacs教学视频&/b&,如果你第一次看,肯定经常有“哇,居然能这样”的感觉,这样兴趣就来了,学得也会很快。网上有很多,自行google。
我用了四年Emacs,中间也用了一段时间Vi。现在主要用Emacs,用插件Evil-mode来模拟Vim键位,偶尔使用Vim来打开超大文件,或者很简单的操作。Emacs Vs. VIM,Emacs和VIM之间嘴炮如此之多,一定有各自巨牛逼的地方,这篇文章写得简短清晰,直达本质。
vim 和 emacs 一起用的路过,emacs 用来写代码,vim 用来改配置文件,用了 3 年 vim,转 emacs 失败 4 次之后,第 5 次终于成功。&br&&br&二者最基本的区别是&语法糖&。键盘上的键就80多个,而要实现的功能远远多于这个数字,所以不可能把每一个功能对应到一个键上,为此 vim 和 emacs 提供了两种不同的解决思想。&br&&br&先说 vim 吧,vim 的处理方式是引入了普通模式,在普通模式下按键是命令不是输入字符,比如 hjkl 分别对应 左下上右 的光标移动,所以在 vim 下将光标上移一行的按键是 Esc(进入普通模式) k(光标移动) i(回到插入模式)。&br&&br&接下来是 emacs 了,emacs 的处理方式与 vim 不同,在 emacs 是同时按功能键(Ctrl, Meta) 和字符表示命令,还是光标上移一行的例子,在 emacs 下的按键是 Ctrl-p (一起按)。&br&这样就很清楚了,vim 和 emacs 总的按键数量是近似的,区别就是 vim 是连续按一串键 而 emacs 是同时按 2-3 个键。&br&&br&根据以上特点,更改配置文件的时候通常只需要改很少的内容,所以 vim 下普通模式光标定位后,更改即可,不需要频繁切换模式。而写代码的时候往往写一行、几行甚至几个字符就有更改需求,用 vim 的话需要在模式间频繁切换,这个成本较高,所以选择 Emacs。&br&&br&先写这么多,更多的区别有空再回来写。&br&二者是不是冲突的,如果有兴趣可以都学~&br&&br&------
更新 -------&br&评论中有同学想了解前几次 vim 转 emacs 失败的想法,许多年前的事情了,我把记得的都写下来吧。&br&&br&很多 vim 中很熟悉的操作不知道在 emacs 中如何对应,比如说最常用的 「f/F」。我是一个重度的 「f/F」 使用者,刚转到 emacs 时,感觉少了一个很重要的功能;另外还有 vim 中的 「/」 查找语法非常优秀,emacs 中的命令就显得有些不友好。总之就是这一类的问题,感觉上就是 Dota 玩家转 LOL,本来是虐别人的,现在要被别人虐,这时就会有一个想法,「老子 vim 用的好好的,为啥要换去 emacs?」,但看着 emacs 还是会手痒,这个过程反复了几次。&br&&br&之后我干过一件事情,因为发现喜欢的是 vim 中的命令和 emacs 中的编辑速度,为啥不把 2 者结合起来?于是我发现了 viper。这个过程就不详细写了,结果就是和在大多数 IDE 中使用 vim 插件的结果一样,&b&不可能有一个插件会照顾到一个重度的 vim 使用者,都是只有基本的功能而已&/b&。在 emacs 里用 vim 不成,那就在 vim 中用 emacs 吧~ 我又开始自己用 vimscript 写 vim 插入模式的键绑定,就是在 vim 的插入模式中,可以使用 「ctrl+f」「ctrl+b」 移动光标等功能,结果可想而知,我甚至根本没有精力针对我使用的所有语言实现一个 「ctrl + meta + f」(光标跳到对应的括号,或者 ruby 的 end 等这种对应的语义)。&br&&br&这就是最后的过程了,我无法再接受这些不轮不类的东西,我当时在学校刚开始做了一个新项目,那个暑假,我换掉了所有的开发工具,从下拉终端(tilda)到平铺窗口(musca),字体换成了 monofur,然后 alias vim=&emacs&,在一个完全新的环境中做完项目的时候,emacs 已经很熟练了。从这以后我才开始使用 daemon,使用 emacs 的各种插件,当我知道 ace-jump 的时候,我已经不需要 「f/F」这个功能了,因为编程的 工作流 已经完全变化了。
vim 和 emacs 一起用的路过,emacs 用来写代码,vim 用来改配置文件,用了 3 年 vim,转 emacs 失败 4 次之后,第 5 次终于成功。二者最基本的区别是"语法糖"。键盘上的键就80多个,而要实现的功能远远多于这个数字,所以不可能把每一个功能对应到一个键上…
已有帐号?
无法登录?
社交帐号登录
我不是全栈工程师为什么不少程序员极度推崇 Vim 和 Emacs,却对 IDE 嗤之以鼻?
按投票排序
176 个回答
好吧, 既然大家都这么愿意参加圣战. 我也从题主的角度来说说自己的情况为什么不少程序员极度推崇纯 vim 和 emacs,却对 IDE 嗤之以鼻?我的状态是这样的:工作5,6年接触vim 7,8年. 从进入Vim根本退不出来, 到用Vim成为一种习惯.起初学习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来证明了自己, 我也同样会拍手叫好, 因为他们已经证明了, 用什么重要么?
放地图炮:这个问题里面绝大多数回答,特别是那些洋洋洒洒上千字的都是在瞎扯淡。其实答案非常简单:干什么活用什么工具。如果你是开发iOS或者mac下的程序,那么显然XCode。开发安卓上跑的应用,显然以adt为主。开发服务端程序和一些简单的脚本、文字编辑,显然vim/emacs加语法高亮和语法自动检查的插件比较方便。还有一种情况是一些新语言,根本没有靠谱的IDE好用,那么只能自己用vim配一个。我就是用vim+gdb+gocode自己搭了个Go语言的开发环境。至于生产率高低完全就是个伪命题,不提工作环境的前提下谈效率就是耍流氓。
这件事情,如果你只看当下,只看很短的时间轴,就很难解释,甚至无法理解。但要从历史长河中来看,就很容易理解。vim/emacs,30年前就有了。至今并没有太大的变化。30年前熟练掌握vim的用户至今依然能熟练使用最新版本vim。并且这个延续了这么多年使用习惯的编辑器依然能够通过扩展具有最新的功能,能适应最新的编程语言。缺省安装无配置的情况下就能够具有成千上万种文件的语法着色,这是其他编辑器无法做到的。而ide呢?30年前的ide,现在还有能用的?你若是用多年前的ide,根本无法适应新的编程语言,或者无法适应新的语言标准,或者无法适应新的操作系统。你18岁学会了编程,可以用vim/emacs,一直用到48岁。但如果你用ide,你每过几年就得换个新ide,30年恐怕换过10个。所以,为什么有人吹捧vim/emacs?是因为有人认为,程序员没必要花费大量时间用在不断的更换ide,学习新ide上面。而如果用vim/emacs,除了最初的一年半载有个新鲜感有个折腾劲,之后的几十年里,你再也不需要操心编辑器的事儿。esr的文章提到过,软件层面,好的设计并不是靠不断修补得来的,好的设计一开始制定的框架可以稳定的持续很多年。而不好的设计不断的打补丁也并不能变成好的设计。ide的问题是,要么它本身就有设计问题,在不断的打补丁过程中变得越来越臃肿。要么它经常被推倒重来,你必须不断的更换新的ide,不断的适应不同的环境。而有一部分程序员认为,程序员本来可以对自己好一些,一款编辑器用一辈子,不用迫使自己每年去适应不同的ide。这是一种选择,虽然它不是唯一的选择,也不一定对每个人都是最佳的选择,但每个选择都自有它的道理,也有它的特定实用场合。----在某些场合vim确实更适用,这与逼格没有任何关系。
实用是好事儿,但经常会丧失解决复杂问题的便捷性。比如处理数据,简单的我也用Excel,但用着用着,碰到诸如特定需求的排序去重,不仅得绞尽脑汁旁门左道,还得查半天函数手册。下次,我不如直接写bash脚本或python处理来的快,尽管它们入门学习成本较大,但能够在未来的路上让我避免掉大量Excel本身的局限性。======================Eclipse、VS等IDE必须在用对的地方使用,才有其独特的优势。VS开发VB、C#等MS语言的时候,绝对是首选(VS的智能感知、MSDN都很棒)。Eclipse用来开发Java工程,各种自动化配置,JAR包关系,自动化发布和测试,同样是首选。我先前开发C#、Java项目时都用它们。但对于更多的语言、开发环境,就不一定了。很多开发是在Linux下,乃至需要ssh到开发机上操作(包括在家里VPN)。这时候,Eclipse、VS连跑都跑不起来。(Eclipse具备一些远程访问功能,但相比vim/emacs还差很远)公司里有自己的编译环境,VS可能压根不支持,Eclipse也指望不上出插件,那么多设置调整起来也很麻烦。而vim、emacs,可能就是加一行命令就够了。======================IDE上手快,但想精通熟练,同样很复杂,并且由于其功能太多、太重,使用起来更复杂。Eclipse、VS等IDE上手快的原因是“鼠标”、“菜单”。这两样东西正是成为一名娴熟程序员的阻碍。人没有三只手,两只手同时照顾宽阔键盘和鼠标的结果,就是“反复切换”、“忙不过来”。菜单就像拼音输入法和五笔输入法的区别一样,菜单是得看着挑,即便再熟练了,还是得看着挑,一步都不能少。所以,在Eclipse和VS上使用熟练的程序员,照样得掌握一大批命令、快捷键。这个是无法避免的。由于IDE自身的功能更多,因此其命令、快捷键、配置,更加复杂。今天写C++,用个IDE,习惯了一堆操作方法;明天写点儿python脚本辅助处理数据,难道再换个IDE,习惯另一堆操作方法?======================我的建议是:1. 与练习盲打一样,不要再过分依赖鼠标、菜单,养成快捷键使用习惯。2. 熟悉一种通用编辑器,vim/emacs/sublime text,可以帮助你在面对各类语言开发、环境、格式编码修改、数据处理等各方面,获得一份没有“瓶颈”的操作能力。3. 当你所常用项目中有某个IDE拥有十分吸引你的特色功能时,尝试使用它。(但不要只因为它提供了鼠标和菜单)
1. 个人偏好不同,例如同样的工作vim/emacs可以完成,vs也可以,而你对这两者都有了解,在这种前提下,有些人觉得前者方便,有些人觉得后者方便。另外,有些人觉得一种工具包打天下太cool了,有些人觉得不用任务用不同工合适。2. 认知水平不同,例如同样的工作有些人只知道怎么用vim/emacs高效完成,有些人只知道怎么用vs/eclipse高效完成,这会导致选择不同。3. 心理因素,我看过有些人就觉得微软不好,所以微软的东西一概鄙视,也有些人觉得用Linux的人都是在装,我不装,所以我不用那些东西。这种站队式的心理有时候会阻碍认知,导致了2的情况。4. 问题场景,每个人面临的问题场景不同,这导致了会有不同的工具适合解决不同的问题。5. 取舍,当问题变得复杂时,就涉及取舍,例如,对于你常用的那些操作来说,有的操作vim/emacs方便,有的操作vs/eclipse方便,而你又不会同时用vim/emacs和vs/eclipse,这时候就有了取舍,这也会导致不同的选择。最好是针对自己的问题场景,明白两种工具有哪些高效操作,再根据喜好取舍。当然,要同时明白两种工具的方方面面,也需要时间成本,这时候人的选择又会分化,有些人可能会去进一步学习,有些人可能觉得时间不够用,只掌握自己熟悉的就好了。
主要你看到推崇vim或者emacs的高手多数是开发server端服务一类的人,相对比较底层,以C代码一类为主,说实话IDE的用处不大还帮倒忙……首先一般ssh远程登录,开图形界面真是和自己过不去……另外,方便的定制化,熟悉时侯对于这样的开发工作效率极高,而且专注。顺便说下,这种情况下vim和emacs已经算是CLI下的IDE了,他们不是单纯的文本编辑工具……如果开发类似有GUI一类的应用,用vim和emacs的话,真是要好好膜拜!真不是他们装B,是对话没在一个空间~
用的工具不同而已用筷的人不能说用刀叉的效率低。用惯了都一样。不过站在团队协作的角度考虑还是用统一的开发环境较好。
你们这些异徒,统统烧死。纠缠于这个能找到妹子么?
编程就像写文章,编辑器和IDE,都是用来书写的笔墨纸砚,而众所周知,对于一篇好文章,书写所占的时间比例可以忽略,无所谓一笔一划的小楷,还是奋笔疾书的狂草。如果编码的效率对整个编程的效率影响很大,那么这个人不是程序员,是打字员。编程也像摄影,编辑器,就像全机械手动胶片相机,emacs、vim就像莱卡哈苏禄来,被无数人顶礼膜拜,视为梦中情人;IDE,就像实用至上、技术先进的现代相机,细分手机、卡片、单反、旁轴等,当然也有尼康佳能之争;手机随身,卡片轻巧,单反强大,旁轴安静;自动档迅捷,手动档灵活;摄影者,有作品的不提相机,没有作品的展示器材,没有器材的秀手动档;专注创作的不介意随需应变,专注范儿的纠结于玩哪一种相机;有的人思考拍什么,有的人爱问拿什么拍的;前者把手机玩成单反,后者把单反玩成手机。存在即合理,各有所爱,自己喜欢就好。
很多人对 IDE 有偏见,因为他们认为这些工具让编程变得“傻瓜化”了,他们觉得写程序就是应该“困难”,所以他们眼看着免费的 IDE
也不试一下。有些人写 Java 都用 Emacs 或者 vi,而不是 Eclipse 或者 IntelliJ。可是这些人错了。他们没有意识到
IDE 里面其实蕴含了比普通文本编辑器高级很多的技术。这些 IDE 会对程序文本进行真正的
parse,之后才开始分析里面的结构。它们的“跳转到定义”一般都是很精确的跳转,而不是像文本编辑器那样瞎猜。这种针对程序语言的操作可以大大提高人们的思维效率,它让程序员的头脑从琐碎的细节里面解脱出来,所以他们能够更加专注于程序本身的语义和算法,这样他们
能写出更加优美和可靠的程序。这就是我用 Eclipse 写 Java 程序的时候相对于 Emacs
的感觉。我感觉到自己的“心灵之眼”能够“看见”程序背后所表现的“模型”,而不只是看到程序的文本和细节。所以,我经常发现自己的头脑里面能够同时看到
整个程序,而不只是它的一部分。我的代码比很多人的都要短很多也很有很大部分是这个原因,因为我使用的工具可以让我在相同的时间之内,对代码进行比别人多
很多次的结构转换,所以我往往能够把程序变成其他人想象不到的样子。原文:
因为在装逼
说个我自己的理由吧,你有时候写C++,有时候写lisp,有时候写bash,有时候写python,有时候在自己机器上写,有时候在服务器上写,有时候连到别人机器上调试。。。这时候,掌握若干种IDE分别的使用技巧和各种神奇的远程调试技术(此处赞一下VS),学习成本未必低于一直使vim。。。
一般参与这种骂战的,分为两类人:毫无立场跟在大神伪大神屁股后面跟风喷的小白,以及原教旨主义者。作为普通的coder,如果没有亲自去用过,就不要随意模仿Linus之类的大神的作风了。这个问题本来就有问题,VIM,Emacs都是IDE,如果你印象中前两者只是文本编辑器,那只能说你不会用。以下假定IDE是狭义的指诸如vs, eclipse, xcode的现代ide。本人这三类IDE都用,用法和用途如下:Vim安装极少扩展用于轻量级的编辑Emacs重度安装扩展,Python,Javascript,Linux下C/C++,CoffeeScript,Lisp,HTML,PHP等语言的主IDEVisual Studio 2012+Resharper+Visual Assit,C/C++ C#的主IDEEclipse for Java, Android,XCode for iOS这两种没得选择的就不说了,也是我个人感觉最恶心的两款IDE。顺便提一下,本人是纯键盘党,电脑根本不插鼠标的。个人的感受是:效率最高最有行云流水之感的是VS2012+ReSharper开发C#,堪称最为完美的工具链:配置、编码、重构、测试、项目组织、部署、调试,没有一处是短板,包括后面会提到的emacs各种编辑插件+lint+flymake火力全开也不过勉强达到这个水平,不服来辩。给个具体的数据,这些年我做过的大小项目不说上百也有几十了,同样的项目,用其它语言的工具链来实现,C#只需要一个小时,某些可以折腾三天,而且所谓的折腾和熟练程度无关的。这套工具链用来阅读/开发win平台下的C/C++也同样很爽。说到VS这一套工具链的缺憾,就是文本编辑功能不如Emacs,光是代码导航一点,只有靠方向键和鼠标,而Vim、Emacs都能保持手不离开准备键位。然后最大的缺点当然是离开win平台,整个就是渣了。本人最常用的是Emacs,先说一下和Vim的区别。两者的逻辑是截然相反的,Vim存在状态的切换,默认是导航模式,需要切换才能编辑;Emacs则默认是编辑模式,用C- M-的组合来导航、访问功能。所以重编辑的,Emacs比较爽,重浏览的,Vim比较爽。Emacs最大的问题是快捷键重口味,大量组合,伤手伤神,配合脚踏那是最好的。Vim由于有状态的维持,快捷键就相对清新得多。Emacs最大的优点,就是可折腾度高。VS只在Win平台下是屠龙宝刀,Emacs则是各个平台下的瑞士军刀,配置得当,屠龙不是问题,对于不会用的人,那就是一个相当麻烦的记事本。关于Emacs和Vim的优点,其他人说得很详细了,我也非常自豪的赞成,就不加细说了。总之个人的原则是,你可以骄傲的装逼,但没必要鄙视别人的选择。PS. 极度鄙视用IE及IE核浏览器的
vim & emacs vs IDE,本质上和 Unix & Linux vs Windows是一样的,为什么每次提出来就会引发口水战,说白了其实就是两种文化的冲突。Unix和Linux的文化是每个应用和模块尽可能的简单,用户可以自由的配置,应用在一起可以协同的工作,但是相对来说学习曲线比较陡峭,举个简单例子,在终端中输入:ls -l | grep login.html & list,这一条命令,实际上使用了Linux的三个小应用:文件和目录的列表功能,正则表达式匹配和输出重定向。vim和emacs也沿袭了这种文化,本身短小精悍,启动极快,又支持用户的自定义以及衍生出来的无数简单易用的插件,同时学习曲线也是比较陡峭,能够高效的使用它们也是需要时日的。Windows 和IDE就是另外一种文化,提供一整套大而全的应用,让用户从初级到高级都能够使用,譬如IDE本身就是一个集合了项目和文件管理器,编辑器,编译连接器,调试器,版本管理工具,界面设计工具,应用框架库,联机文档,预装的第三方插件或可扩展接口等等的工具集。真正就编辑器的功能来说,IDE会 Ctrl-C+Ctrl-v 就很够用了,真正需要花很多时间学习的,往往是后面这些功能。现在回到题主的问题:为什么不少程序员极度推崇纯 vim 和 emacs,却对 IDE 嗤之以鼻?试想你在 IDE 上编程(IDE 上装 VIM 插件的另当别论),除了敲键盘上的各种字符,就是使用Ctrl-C/Ctrl-V/Ctrl-V,突然有一天你用上了 Vim,你发现怎么直接敲键盘没有反应了,直到你敲了 i 或者 a,Vim 才和 IDE 上的编辑器一样接受你从键盘上敲击的字符,你心中默念,还没有 IDE 好用,然后就关掉 VIM,回到了 IDE。直到有一天,你发现了这个帖子:,就像哥伦布发现新大陆一样,你发现原来编辑器还能这样用,经过一段痛苦的适应过程,你已经能够熟练的使用 VIM 的各种编辑特性时,是否回头看 IDE 时有些许的轻视,其实就算你要轻视,也只应该轻视 IDE 的编辑功能,而不是IDE本身。从本质上来说,Vim就是一编辑器,Emacs是一个开发工具,而IDE是一个开发工具集合。没有道理推崇编辑器和开发工具而鄙视开发工具集合。回过头来看看使用场景,使用vim 和 emacs的程序员,多数是在Unix/Linux/MacOS下工作,使用IDE的程序员,多数是在 Windows 上工作(Linux 上使用 Eclipse 和MacOS上使用 Xcode 的也很多,先简化模型),所以这个命题就变成了,为什么不少程序员极度推崇Unix/Linux,却对Windows 嗤之以鼻? 其实这样是不对的,尺有所短,寸有所长,长期接触 Windows 的程序员,在Unix/Linux上开发并熟悉起来后,会有点瞧不上Windows。但是使用多年后,回头看时,会觉得当初的嗤之以鼻是年少轻狂。这个心路历程,很多人都有,看看王垠的两篇文章:,,应该能够体会心态的转变。所以说,一个程序员,给一台啥 IDE 没有的Linux机器,可以用vim编程;稍微复杂一点的解释语言,可以用Emacs;需要编写Windows程序,可以用Visual Studio;编写 iOS 或者 MacOS 程序,可以用XCode;编写 Java 程序,可以用 Eclipse,这样的程序员也是一个好的程序员。
这两个配置你们感受一下,前者是emacs的,只要改一下~/.spacemacs就能适用于各种用途,别的不好说,反正有这个之后我就把PyCharm给卸了。后者是vim的,对Python的支持不如前者,不过对c/c++的支持异常强大,Linux底下能用的ide也就Clion比他强,而Clion那感人的内存。。。( ~っ~)/这两个编辑器的配置文件我都不会写
因为他们除了炫编辑器的快捷键以外,没啥其他可炫耀的地方了。
看了这么多评论我就想说一句,不会编程没前途,只会编程一样没有前途。整个IT产业的根本目的是创造一个可以舒服生活的世界,而这个世界包括编程本身。如果一个程序员以折腾为荣的话,那岂不是违背了整个产业的本质?如果是这样的想法的话,我们都还在用纸条输入的电脑,哪里会有键盘给你们争论不休。
这好比手洗和洗衣机洗的区别,你能手洗袜子,但是你手洗床单试试!有的人就觉得他能手洗床单,从而去鄙视机洗床单的人,别人在洗床单的同时已经做好了饭,你却洗了两手的褶子。
Vim和emacs提升的是输入效率。IDE提升的是开发效率。Linux+SSD+VS2013+内嵌Vim,一直是梦想的环境
VIM超强大,我选择IDE
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 逆战新武器暗黑神炮 的文章

 

随机推荐