我的Emacs之路

我的Emacs学习之路

说起emacs,肯定会少不了和vi/vim的争论,这两者的所谓的神的编辑器(Emacs)和编辑器之神(Vim/vi)一直是我们这些Programmer的口舌之论.在此,我不多说哪个好哪个坏,我是一个从Vim到Emacs的使用者,只是说下自己使用两者的经历.(这不代表我完全脱离vim,偶尔在服务器上还是使用vim,自己的平时笔记什么的,基本都用Emacs来作为我主要的编辑器).

每个程序员,或多或少最先接触的是vi/vim,因为不少的Gnu/Linux发行版默认安装的就是vi或vim,而且在SSH到服务器上管理时,就更加可想而知了,所以说vi/vim使用者众多,并不是说是使用者自己非常愿意或者说是心甘情愿去学习的,而是因为几乎所有的*nix系统都默认安装的,所以使用者就多了.这就好比Windows系统默认安装了IE一样,在以前的IE霸主时代,代表着说浏览器就是说IE.可是,当有一天,你发现了一个全新的与IE不同的浏览器时,你才知道,原来这个世界,还有这么好用的浏览器,比如Chrome.有人说IE,代表着I’m Evil.试问下,同时真正接触Emacs和Vim两者的又有多少?真正去认真接触,去深入讨论比较的又有多少?

在<一代宗师>里,武功有三种境界,大概意思是:见自己,见天地,见众生.我想许多人还停留在见自己的阶段.不去见下天地,不去见下众生.既然是两大神器,为何都不去多点了解下,然后才去决定到底哪个编辑器适合自己.

使用Emacs,纯属偶然.之前也有打开过Emacs,但是发现它与vi的思维完全不同,emacs没有类似vim那样,有几种不同的模式,还有经常性地按下Esc键,有时候自己都不知道是处在什么模式,就连续按下Esc按好几次来确保自己是处在普通模式,以便可以移动或进入命令模式.从接触Linux起到现在,还是对vim没什么感觉,还买了本来看,但还是学不上手.

就在今天的清明节前几天,也不知道什么原因使自己心血来潮,突然间想接触下Emacs,这方面中文资料比较少,但经过这一个多星期的努力,不敢说精通,但至少上手了,而且感觉良好.至少比起自己以前用vim,更有感觉,而且已经将它作为了日常的主要编辑器.比我的感觉,就像是学了这么久MySQL,突然间接触到了PostgreSQL,那种感觉非常美妙.有人说,你这样子没有什么用吧,贪新厌旧,不如人家精通一个.但是,我却不这样子认为,其实所谓的精通,谁又能真正地精通软件?日日新,月月新的发展的社会和技术,特别是我们这软件行业.谁敢说精通Java?一个行业学到一定程度,就会有一个迷茫期,不知道如何进一步去提高,这时如果接触一些新的知识,转换下角度,也许发现我们以前觉得理所当然的东西,或者已经存在着更好的了,只是自己不愿意去学习而已,或者有那种先入为主的思想,既然我已经有了vim,而且也没有觉得有什么不好.我觉得,这就像开始说的,还在”见自己”的阶段,不去见见天地,怎么知道外面的世界是不是还有更精彩的.

自己也一直在追求一个Best For MySelf的编辑器,我经常要用Markdown,Todo写笔记,偶尔还要生成一下PDF和HTML等笔记,偶尔还要写写HTML,JS,Bash等脚本的东西,甚至写写电影观后感或读书笔记之类的,噢,还有要用表格来记录下自己的生活花费等.在接触Emacs之前,我大多是用Mou,Markdonw Pad,Macdown,Numbers, Excel来做表格,但总是觉得不满意,直到我遇到了Emacs,遇到了Emacs的org-mode,我才觉得,这才是我需要的.不用在各个软件之间来回切换,而且操作方式习惯等都还不同,而用Emacs,”加料不加价”,所有的操作方式都在同一个操作习惯下完成.不同在不同的软件之间来回切换,还有思考方式及操作方式的切换.让你专注于写文字,that’s all.

我对Emacs的初步感觉

优点

  • 无模式,输入即所见.这与vim不同,要不断按Esc来切换,可能我比较笨,总是记不得当前是什么模式,所以总要按Esc好几次.
  • 非常自然的光标移动,与*nix工具使用非常相似.比如在Bash的基础操作与Emacs是相同的(在Mac下更好,Mac的文本编辑操作与Emacs的非常类似),一想起Vim的HJKL的光标移动,我…
  • 非常方便的宏编辑.说真的,虽然vim里也有宏编辑,但基本没有用过,自从用了Emacs后,反而更有意识地倾向使用宏功能.
  • org-mode 这个可以说是神器中的神器.
  • Emacs自带有插件管理器,类似vim的vendle和ubuntu的apt软件包管理器.
  • 在Emacs里可以做非常多的事件.难怪有人说Emacs是一个伪装的操作系统.可以播放无损音乐,看PDF,看图片等更是不在话下.
  • 用一种操作习惯来做各种不同的事情.

缺点

  • 安装完比较多的插件后,启动有点慢.但还可以接受.