开发工具 你是 vim 党还是 emacs 党?

hungyuhei · 2012年03月05日 · 最后由 clarkhillm 回复于 2016年03月29日 · 22888 次阅读

只是好奇,无意引起任何论战

而我自己是一个vim党,用sublimb text 2作辅助工具

共收到 73 条回复

碧咸是我最尊敬的足球运动员之一,而vim是我正在学习使用的编辑器

vim 执政,ide旁听

左手Emacs,右手vim

#1楼 @pokkalee LZ头像是国王坎通纳吧

emacs 主, vim辅。 偶尔用用textmate

@pokkalee @lululau 看来曼联党也多,是简东拿,不是碧咸 :)

Vim 党和 Emacs 党都弱爆了,我在 Emacs 里用 evil-mode (几乎完美模拟 Vim 按键) XDDDD

(举牌,这是笑话……)

日经贴。 vim+1

我是 TextMate 党

还没用过emacs,想等vim完全用熟练了之后试试

vim + gvim + vi

emacs转投vim,i模式键位移动还保留emacs风格,现在用vim用得很爽

#4楼 @lululau #6楼 @HungYuHei 是的- -很久没看足球,七号在我心中的地位啊。。。

用vim的意甲尤文图斯球迷飘过。。。

之前一直用emacs,后来用mac之后就不用了,因为macbook键盘的ctrl键位置很怪异,要爱生活,爱小拇指。

#21楼 @hisea 如果用emacs,但没有替换caps lock和ctrl的键位,那我很怀疑。

@hisea , 使用Emacs的第一步, 是Caplock和右边的Alt替换. 否则, Emacs你应该没用多久, 而且肯定也不熟.

#22楼 @hhuai 用linux的时候从没换过键,习惯了左手小拇指按最左下的键,cap lock太靠上了,不习惯。Caplocks用emacs试试C-x C-c 有点在翘兰花指的感觉。

#23楼 @zw963 我不换键,不折腾配置。只装最简的package. 证明我是老用户,有我六年前的博客 http://www.yinghai.org/?p=338 http://www.yinghai.org/?p=371

@hisea , 相比较而言, 我是新手了(一年而已), 哈哈.

不过, Emacs如果不折腾, 失去Emacs存在的意义了. 你最终换其他编辑器, 我想 也许是因为你折腾的少的缘故. (我承认, 可能我自己折腾的有点太过了)

事实上, 我认为默认的Emacs那些东西, 真不是一般的难用. 我要是你, 这么多 年一直用默认的那些东西, 不用说六年, 六个星期我都坚持不下来.

Emacs的精髓, 天生就是一个人, 一个样儿的玩意儿~~

#26楼 @zw963 呵呵,我当初再折腾gentoo + fvwm, 用到emacs的时候就是急着写作业或者赶进度。。当初用是因为大二学逻辑可,有一叫pvs的东西是在emac环境里搞的,必须用emacs,之后课程就一直用emacs 写过 haskell, c, java,shell, 也折稍微腾过,字体什么的,比如在emacs中吧\ 字符换成 λ 字符,哈哈,主要是学haskell的时候弄的。装了不少乱七八糟的package到最后就只用tabbar.el了。

大部分快捷键我都是硬生生的习惯的,记得当初最痛苦的是undo,需要两个手 左手C 右手 shift + _ 不过习惯了觉得挺好的,两个手undo能停下一切工作,仔细看自己undo的纪录。

后来用mac就是不想再折腾了,gentoo才是超级折腾,我当时编译系统的编译器都是本地编译的,尝试各种编译优化参数什么的,整个系统花了一个礼拜才都装好。 最简化的emacs其实让我对编辑器的需求很少,能复制粘贴,undo,最主要的能全局搜索,模糊打开文件名,差不多就够了。

现在我的emacs还在,不过主要是用sublime text 2了。

是的,emacs的精髓就是你能做很多事情,喜欢做什么就看你了。

#4楼 @lululau ... 工作中 Eclipse + Vrapper 开发 Java,业余 Emacs 学习 Ruby

#27楼 @hisea , 你是哪个学校的, 那么牛. 哈哈.

gentoo刚开始使用linux时, 想过来着, 后来嫌麻烦, 还是使用Slackware了. 虽然我没有你那么彻底, 不过我刚开始装Slack, 也是一个包一个包装的.

原因就是: 之前没接触过linux, 那时候对于linux有一种莫名的恐惧, 带来的副作用就是: 每装一个包, 我就希望看看他到底装到了那个目录下, 包含什么类型文件, 不同的文件, 以及不同的目录大概的用途.

折腾来折腾去, 唯一的好处, 就是消除了恐惧感, 后来还是觉得完整安装 Slackware效果最好. 现在觉得当时挺浪费时间. 哈哈.

fvwm那个东西没用过. 貌似也是一个类似于Emacs的玩意儿. 需要折腾. 我也是因为没时间, 后来用XFCE4觉得很好, 就再没有换过.

undo, 其实, 你完全可以把C-_, 换成C--嘛. 不过我用C-/用的多, 习惯问题.

我不知道你说的所谓全局搜索是什么意思? 难道你指的在ibuffer或dired模式下 搜索所有被标记文件的内容吗?

你说的tabbar.el, 我大概能猜出来什么用途, 我常用的插件好歹也有几十个, 还真没用过这个. 正如你说的, 主要还是没需求, 所以就没考虑.

刚刚我在另一个帖子(讨论dired的那个)里发了下我的.bashrc里面的xmodmap配置, 你如果还打算使用Emacs的话, 不妨快捷键换了试试. 相信我, 就我之前的经历 来说,更换capslock, 绝对是一个质的飞跃.

Vim很牛的. 我天天用, 用半个月上不了手. 不过, 如果你像我这样, 发帖也使 用自己Emacs, 还使用自己熟悉的键位, 顺便还加载个markdown-mode, Vim就没 那么容易了. 哈哈.

#27楼 @hisea , 刚刚我看了下你说的sublime text 2, 优酷上的一些视频, 的确很是酷炫~~ 不过, 可能用Emacs太投入了. 觉得有些多余的功能, 例如 鼠标拖拽之类的, 反而没用. 倒是bundle类似的功能, 我几乎天天用, 天天 改, 不过Emacs下换了个名字叫做Yasnippet.

我甚至上github folk了一个textmate-mode, 然后自己做了一些更好的修改, 偷了很多textmate的精华. 例如, 典型的以tab点为坐标的backspace. 还有textmate方式的换行.

我觉得除了不支持多线程, 其他任何编辑器的功能都可以在Emacs中完美实现. 当然不是我实现, emacswiki 是巨大的宝库.

#30楼 @zw963 我是McMaster大学毕业的,在加拿大。

全局搜索是类似textmate或者sublime在打开的项目里面搜索一个固定的内容或者regex,很多ide/编辑器都有这个功能。相同的功能在emacs我用的多的就是M-x find-dired 或者 M-x grep-find, 我发现我另外一个怪癖就是不爱用快捷键,喜欢M-x 敲命令,可能我记命令比记快捷方式更快吧。

fvwm是一个类似gnome/kde/XFCE4的window manager,其特点是所有的东西都能配置。可一搞得很炫也可以搞得很丑。

其实想想,我不换emacs的键可能有强迫怔,不光快捷键,我很少用alias,所有的命令都是手动打的,我同事开发rails搞得rs,rc,rg,rrg 什么的,还有git的gc gs,我很难接受,如果是我肯定会忘了gs是git status 还是 git stash

#31楼 @hisea ,

哈. 你说的全局搜索和我想的一样, 虽然我都有专门设定统一的hotkey, 用于多 个buffer, 或者多个file内容搜索, 不过我很少用. 那个find-grep, 我之前 一直不知道, 不过那个默认的命令格式, 和我的.bashrc内自己写的几乎一样.

其实咱们的习惯很相似, 在Emacs中, 我用快捷键多一些. 不过较简单的命令, 我也习惯通过M-x来运行, 例如: M-x yari. 上面说的全局搜索, 甚至全局替换, 我几乎总是在shell下面完成. 其实很简单, 几个linux拼在一起而已. 例如: 全局替换:

alias gsub=find-in-file-and-gsub

function find-in-file-and-gsub {
    command find -type f -print0 |command egrep -i -z -e "$1" |xargs -0 ruby -p -i.bak -e "$2"
}

然后: 只需要 gsub 要查询的re 要替换的内容, 即可.

我的.bashrc内有大把的类似别名, 有些甚至很简单, 例如进入某个目录, 或者是 使用Emacs打开某个经常访问的文件, 其实文件名我没有省略好多, 只是有时候懒 得打路径而已. 例如: alias fstab='e /etc/fstab' 直接键入fstab, 就使用 emacsclient打开了/etc/fstab, 一方面省劲儿, 只需要把注意力关注在要打开的 文件名上, 另一方面, 也是备忘, 写到.bashrc里面, 时不时的看一眼, 就想起来 了: 哦, 这是一个挺重要的配置文件, 在这个地方放着呢!

事实上在linux下使用了Deamon方式的Emacs以后, 我都不怎么通过ido来打开文 件, 大多数时候, 常用的文件的文件名, 我都有对应的alias, 想打开看得时候, 直接在shell下输入别名就行了. 我甚至还有一套自己的别名命名规则, 哈哈

我之前有很严重的强迫症, 现在克服的的好多了, 不过完美主义是改不了了. 其 实我做的大把的修改, 技术方面的东西反而不多, 更多的是个人体验方面, 甚至 可以上升到一个`个人哲学方面', 我也描述不清楚, 我觉得只有个人才能完全体 会.总之, 我觉得我做的大量工作, 应该是linux或者说开源界很欠缺的那种东西, 太自由化, 缺乏标准, 在这点上, microsoft尤其是apple应该做的比较好.

不过, 我觉得这也不完全是坏处, 至少, 你可以选择自己喜欢的方式. 例如Emacs. 我觉得你的那篇帖子的标题: 欲练神功, 必先自费武功, 用到emacs 上面最贴切不过了. 不说从其他编辑器转到Emacs, 同样都是使用Emacs, 也是一样.

#31楼 @hisea , 有机会出国真好. 我觉得我现在就是典型的崇洋媚外! 没事儿多 给咱社区传达传达最新的咨询动态啊.

留个联系方式呗, 多多交流. 我邮箱zw963@163.com

大爱VIM和各种帮助提高效率的插件,CommandT, NerdTree, rails.vim, ack.vim, nerdcommenter, zencoding等等

#33楼 @zw963 恩,我油箱是zyinghai@gmail.com

vim forever

#33楼 @zw963 我问你一个emacs的问题, 关于ecb导航树, 如果在通过shell创建了一个文件, 那么如何刷新导航树, 对应vim中的shift+R

#22楼 @hhuai #23楼 @zw963 如果你Caplock和右边的Alt替换,那你一定不玩星际||魔兽, 或者没有一个好的键盘。

#38楼 @sharp

貌似你问错人了. 呵呵. 我没用过ecb, 你可以问问@skandhas, 他最新在修炼Emacs中, 而且有用到你说的ecb, 我不用C, 所以没需求, 貌似一般的插件, 刷新都是 `g' 或者`G' , 你试试. 最好的办法是查看源码, 这也是Emacs最爽的地方了, 有那些快键, 一看代码就清楚, 而且由你改了.

不过说起导航, 我是一堆快捷键混着用. 有ido, ibuffer, dired, 搭配find-in-project的玩意儿, 反正是能最快的方式找到所需的文件或buffer就行, 并没有什么固定常用的导航插件. 如果是Rails开发, 还多了个一个rinari. 我也是定制了一大堆快捷键.

顺便提一句, 快捷键是用手指记忆的, 所以相信我, 任何人能办得到. (不要怕快捷键多)

#39楼 @siyang1982

真没玩过. 呵呵.

#40楼 @zw963 额, 在emacs中你没法不用快捷键, 否则会被坑死

(global-set-key (kbd "C-c e") 'ecb-goto-window-edit-last)
(global-set-key (kbd "C-c s") 'ecb-goto-window-sources)
(global-set-key (kbd "C-c d") 'ecb-goto-window-directories)
(global-set-key (kbd "C-c m") 'ecb-goto-window-methods)
(global-set-key (kbd "C-c h") 'ecb-goto-window-history)
(global-set-key (kbd "C-c r") 'ecb-redraw-layout)
(global-set-key (kbd "C-.") 'cscope-find-global-definition-no-prompting)
(global-set-key (kbd "C-,") 'cscope-pop-mark)

学emacs需要学lisp.

#38楼 @sharp 我一般是在 sources window上 用 Shift + 主键

又讨论ide啊。。。蛋疼的你们,我用netbeans

-_-# 又被顶起来了。。。

用Vim的巴塞罗那球迷飘过!

很久以前把 Emacs 照这个配置了一下,挺酷的:http://v.youku.com/v_show/id_XMjYxNjM4MDQ0.html

不过视频里的高亮是后制的,emacs 弄不了这么漂亮 : P

#49楼 @Juanito

不奇怪, 这种帖子向来火爆. 呵呵.

你不妨照我的配置来试试啊.

#42楼 @sharp

那么你的问题解决了吗?

#51楼 @zw963 没, 应该这么说, 如果仅仅是touch一个文件,我可以用tab再次展开, 可以看到该文件。 如果是rename, 那么就有点杯具, 搞的我现在只能C-x C-c重启Emacs, 很狼狈, 不过有时候目录下的文件被重命名后, 可以即时反应出来, 有时候不行, 这取决于某文件在被重命名之前是否已经被加载到buffer中去了, 我现在考虑采用kill buffer的方法

#50楼 @zw963 哈我也跟 @hisea 一样,爱护小拇指。。。最近改用 Sublime text2 了 :P

#53楼 @Juanito 最近开始用vim了,自己搞了套配置,用了两三个月了

我插一句, 去年 6 月用的 vim

#54楼 @hisea Vim加载目录树快, 用了三年多了, 因为搞Erlang的缘故, 逼着我跑去用Emacs, 一年有余, 说真的, 我更喜欢textmate

#56楼 @sharp 恩,用vim之前一直再用sublime,喜欢textmate的话也可以看看sublime, 有些功能还是不错的。

#57楼 @hisea

I 服了 you~~

别人的想法都跟不上你换编辑器的变化. 呵呵.

虽然我记得之前在咱们在那个帖子内讨论过. 你说你用过很多年Emacs(而且不换Capslock那种用法), 而且前阵子还Back to Emacs. 不过我现在可以非常确定一点: Emacs你从来没有深入进去过. 你也没有了解Emacs的精髓. 或者准确地说: Emacs根本不适合你. 相信我, 我了解Emacs. 虽然我不会用Vim, 但我也了解Vim, Emacs这一类编辑器不会是你喜欢的type, Vim应该最适合你.

Emacs是那种首先要一定要深入的折腾, 而且要折腾很久才会出效果那种编辑器. 经不起折腾或者说折腾不起来, 又或者仅仅不爱折腾(原来编辑器是什么样,就继续那样用), 这都不是Emacs的价值观. 呵呵. 在在这点上Emacs还有点象Ruby. 一对兄弟啊~ 没有Emacs, 哪里来的现在的Ruby ?

#58楼 @zw963 呵呵,你误解我了。

我用rails以来一直在用textmate/sublime, 以前用emacs主要是开发Haskell跟pvs,

自从两三个月之前我决定尝试别的工具开始,我就打算停止sublime的使用,Emacs跟Vim强制使用两个星期来写Ruby/Rails的应用。

rails有rails的workflow, 跟我之前写haskell跟pvs是不一样的。 就像现在如果要开发J2EE,我可能还是会用Eclipse, 开发iOS我会用XCode. Emacs当然也可以开发J2EE跟iOS,但不一定时最佳选择。

所以说,我强制自己尝试不同的东西一段时间。一是学习,二是找到适合自己而且适合手头工作的工具,我觉得程序员就像木工,木工的工具盒里永远不可能只有一个工具,能在对的时间用好对的工具才好。

可能我不了解emacs的精髓,也可能不了解vim的精髓,甚至不了解textmate/sublime的精髓,其实了不了解对我意义也不大,对我来说编辑器就是编辑器,了解用编辑器写的代码的精髓更重要。编辑器我只看顺不顺手,效率高不高。深入进去也是多方面的,很多Vim或者Emacs的新手可能装很多plugin,用久了反而越用越简单,插件越来越少,我想这就是由简入深易,由深入简难吧。

尽管这样我还是都用过,而且我学新工具的时候再不适应也要坚持一两个星期,来体会。我觉得只是了解不够,了解了精髓也不够,需要一段时间的时间来实战。比如你说你了解Vim,可是不会用,哪你怎么这么确定Vim不如Emacs适合自己呢。更怎么知道哪个适合我呢。 我喜欢Emacs的kill ring, 喜欢多线程,喜欢vim的那种文本手术的感觉,这都是我自己自身使用的体会。

毛主席说过,要知道梨子的滋味需要自己尝一尝。

#58楼 @zw963 我换编辑器不算快了,不如暗黑3上角色换得快,第一天就完了3个人物,现在我有四个人物不同职业,最高42,最低19,来找最顺手的。

哈哈,

还有上班,最近设计一个api服务器,尝试了很多framework跟gem的组合了,sinatra单独,sinatra + rable/grape. Rack, Rack + Rabl/Grape.

#59楼 @hisea

没有啦, 我只是觉的某些方面你能挺能折腾, 不过在Emacs上貌似折腾的有些少了. 没发扬出折腾精神来. 而这一点上, 我在Emacs上的体会是相当深刻的(还是在几乎不懂Lisp的前提下, 如果那天Lisp咱也发扬广大了, 相信我, 我一定会尝试用Emacs煮咖啡之类的事情).

Vim我也用过的. 也是用过才知道Emacs适合我啊. 其实Vim我也不了解啦, 不过我知道一点, VIM就算你想折腾, 首先因为Vim的设计哲学, 按键上你不用考虑了, 其他方面, 相比较Emacs, 能做的事情那就太有限了. 反正你不爱折腾编辑器, 所以才说Vim最适合你了. (我推测, 所以尽量少折腾, 就可以立即上手解决目前任务的编辑器, 你很喜欢喽)

#60楼 @hisea

还是那句话: I 服了 You.

我玩 暗黑那么多年(很久了, 从一代开始, 后来二代断断续续一直在国内私服), 只会玩 Sor, Pal, Ama. 这三个角色我自认为玩的也算透彻了. 除了以上角色, Nec也会一点. 当初光计算公式, 人物资料啥的, 我就赞了一大堆. 其实, 最初我像你一样, 也是有比较的. 只不过很粗略的比较下, 然后就选择了自己喜欢的角色, 但是一旦选定了, 玩了这么多年, 我都没把这三个角色的所有技能玩透, 甚至有些技能都没玩过, 所以其他角色基本上就没玩了.

#61楼 @zw963 恩,很多时候还花钱折腾,选择编辑器这个上面,为了尝试Rails开发,还花钱买了RubyMine。虽然最后觉得太厚重没有用,但是现在还是有RubyMine4的 License.

#52楼 @sharp Shift + 主键 就没问题啊~

#63楼 @skandhas 我用的是ubuntu, Shift + 主键 被系统绑定了, 应该映射到什么操作上

#64楼 @sharp ECB的默认主键是mouse-2 ,你可以修改。 我的鼠标 mouse-2 就是那个滚轮。 不方便的话,可以把主键修改为mouse-1.

没想到讨论这么热烈,我也来掺和一脚。

大二的时候开始接触 Vim,C++ 课程上老师推荐的,还专门去听过一个学长分享Vim 的使用经验。重点是得到了,有点像是 vim is a wand, for better text manipulating 。 然而这是后来的长期使用才感受到的。那时候对 Vim 的配置很基础,现在流行的 Vundle 什么的,应该也还没出来。

大三的时候先装了 Ubuntu,直接干掉了 Windows XP,后来有改用 Debian。编辑器则 Vim、Emacs 都装了,但受一个学弟的影响(http://lifegoo.pluskid.org/wiki/Emacs.html),开始用 Emacs,配置什么的折腾了很多,EMMS 听歌,Emacs Muse 写博客,文件树我记得用的是 speedbar 什么的,tabbar.el 也用了,然而跟 @hisea 同学一样,一直没有折腾过 key swapping,小拇指按 Ctrl 也没觉得啥不爽。不过我知道 C-/ 也可以撤销 -_-b 此外除了比较常用的例如 C-x C-s,我都是双手按快捷键,这样手能够不扭曲一些,可以大方地移过去按角落里的 Ctrl。

Emacs 一直用到我 2010 年换公司,中间写过实验报告(LaTeX)、Perl 脚本、Django 网站、SQL 以及 HTML、JS 神马的,不一而足(http://2008.cyj.me/)。换公司之后,机缘巧合,要开始写 Rails 项目,试用了下 rails.el,记得找个 controller 的按键是 C-c r c <controller_name> 之类的,总之特别长,心说这货不靠谱,折腾起来也好麻烦,不如试试 Vim 的 rails 插件。它的默认方式则是 :Rcontroller ,因为有 tab 补全,其实打起来比 Emacs 那货快多了。于是就换了。理由其实挺奇怪的,默认方式不够好,不想折腾,结果直接换了个编辑器。

然后 Vim 用到今年,文件树用的 NERDTree,其他还有 rails.vim、nginx.vim 以及 solarized 颜色主题等等。

今年4月始,又换了 Sublime Text 2,理由也简单,subl 的 Project 功能很贴心,项目内文件查找很好用。Vim 里理该也有现成的插件,可能叫做 CommandT 或者 FuzzyFind 之类的,好像是收费,就没怎么折腾。而 subl 则可试用,于是就一直试用到现在,配合它自带的 vim 模式,挺好,唯一不习惯就是没了 s///g,换成了所见即所得的查找替换,少了些 magician 的感觉,但确实提高了准确性。

我的 dotemacs 与 vimrc:

emacs 越陷越深了,根本无暇顾及vim, 看不到将来会用vim的肯能性,,, gui下一般用eclipse, 关掉 xwindows ,开启 fbterm, 命令行下就是emacs 的天下了, 完全中文命令行操作. 整一个纯文本操作界面, shell, w3m, org, erc, 你懂的.. emacs 虽然学着蛋疼, 但是绝对是神器..

emacs太高端了。。我这种水平vim就够了。。

vim太难了……不会用…++vim

#69楼 @siyang1982 你是傻逼吗?

#71楼 @michael 你是2B是肯定的。忽然发现没举报按钮

neovim,vim,macvim主要用来编写python以及javascript,如果写java,我觉得还是intellij比较好,不过需要安装一个vim插件。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册