既然以前说过要写我怎么继续折腾Emacs的,过了一个星期这里就是第二篇了,忽然以为我把blog这样分节不是很好,每次可能要凑一些东西才有该有的篇幅,并且说的东西可能东一点西一点,这样一篇看下来不利于检索,因此这一篇事后会按主题来写,再也不用原来的形式,有一点写一点,每次围绕一个主题来,这样比较好阅读一些.python
今天写一些Emacs我刚入门遇到的困难,这里我拿目前很流行的sublime来与emacs作一个比较,看看emacs到底有哪些难处让人很难上手:git
首先介绍下sublime text, 这个编辑器最近极为流行,也确实很是的好用,别的不说,从默认安装事后就会发现这个做者仍是很是懂码农的,默认的配色就是molokai,虽然有些人不太喜欢这个配色,不过从vim的插件数量统计上就能够看到它有多么的流行.(固然咱们的emacs如此的强大,区区一个配色方案仍是有的.)通常来讲写代码的话大部分人仍是喜爱偏暗的配色,比较不伤眼,并且颜色比较容易分辨.另外咱们从图上也能看出来,sublime默认就有左边的一个小型的文件管理器(或者说project浏览器),默认就有行号,右边有代码地图,上面有tab,而这些都是默认配置!!不要小看默认配置,ruby on rails的一条最重要的原则就是约定大于配置,默认就把全部事情作好这一点过重要了,多少人想学emacs结果连键位都还不熟还得每天看着80年代机器同样的界面,打开配置文件之后又是"彻底没法理解"的语言,就这样放弃了emacs.程序员
这个问题在emacs24版终于被部分解决了,以前一篇也提到过这个问题,如今有了melpa这个和github社区力量结合的东西,写一个插件并发布变得十分简单,并且插件能够保持更新,这一点我以为emacs已经作的不错了,也正是由于emacs开发者不断的努力,才使得emacs user仍是不断有新人来学习和使用.今年来lisp方言的流行(好比我就是为了写clojure才用emacs的),各类小众语言没有IDE的支持,语言做者每每都倾向于先写一个emacs的mode来使用,clojure-mode至今还是众多开发人员的首选clojure编辑环境,全部的lisp方言基本都是这么个情况.并且最近已经普遍普及的python和ruby在emacs上相应的插件都功能很是强大,好比python-mode我以为使用熟悉之后效率比原来用pycharm还高.github
说了半天好像在说emacs的好话,可能也是我近期都比较倾心于emacs的缘故.在插件系统上emacs的缺点是emacs lisp实在学习成本比sublime用python作插件来的高一些.这样将许多想按本身设想作插件的人拒之门外,不过我以为相对于emacs如此高的学习成原本说emacs lisp反倒不该该是一个障碍,lisp我认为做为一个想提高本身的程序员都应该学习一下,就算知道一点皮毛最起码也拓宽了您的眼界不是?vim
emacs的插件群很大,并且不断有新的插件加入进来,上图是我接触了一点时间安装的一些插件,另外透露一下按我上一篇博客设置了源之后你就能够看到有1400多个插件能够安装啦.这在全部编辑器中应该是最多的了吧.windows
这是我面临的很大的问题,特别是因为从vim转过来的,常常会打着打着忽然ESC+hjkl,其实论纯文本编辑效率来讲vim确实比emacs强.可是emacs这个东西更加适用于写,就是将脑中的内容敲入屏幕中这个过程.但不得不说是一个很是大的问题,我分一些点说,这块实在很是想吐槽.浏览器
习惯了vim的人会以为我这辈子在文本编辑器里面不再用按上下左右四个键了,我甚至以为相对于emacs user来讲vim user更加适合HHKB这个神器,反正我最近本身仍是买了realforce 104(不过也有点打游戏的因素在里面,有些游戏没有小键盘很差打).ruby
咱们来看看emacs的上下左右: 上 -> Ctrl+p(revious) 下-> Ctrl+n(ext) 左-> Ctrl+f(orward) 右->Ctrl+b(ack) ,让人无比的蛋疼有没有?虽然能够配置,可是有没有想过其余绑定在上面的健怎么办?我到如今仍是以为这么按很是难受,就算把Capslock改为了Ctrl依旧让小拇指的工做强度大大增长.解决方法是能够装个Evil插件,模拟vim用,我如今暂时还不想这么干.目前我又用回了上下左右+鼠标,只有大概一半的时间会用Ctrl+pnfb吧,我发现Meta+pnfb仍是比较好用的,但也不是很常常用.到时Ctrl+a移到行首和Ctrl+e移到行尾我的认为比vim的0和$强一些.cookie
emacs的打开文件对新手简直就是恶梦:输入文件路径打开文件!你能够想像一个新手层层输入文件的绝对路径只为编辑一个文件心中有多郁闷么?并且不像gvim尚且提供给你一个windows风格的打开文件对话框来让你找文件,就算点菜单你也只能老老实实地输入路径,并且打开文件的快捷键也很囧Ctrl+x Ctrl+f (之后我仍是按官方的规范写法C-x C-f来写了).您就不能跟别的软件通用一下么?不过emacs为了考虑通用性没有加入mac上的cmd键和windows上的win键,我之后另开一篇写emacs的无伤按键配置好了.并发
保存文件的快捷键是C-x C-s,其实大概用个十几次也差很少熟悉了.
vim有dd , yy,J等极为方便的操做,我我的反正已经离不开了,emacs的习惯有些不太同样,这些操做在emacs没有等价的快捷键,我只是列一下个人方式
dd删除一行:我通常是用C-a移到行首,而后C-k C-k删除一行的,按键比较繁琐,可是也凑合了
p粘贴回来,这个emacs里面用C-y(ank)
J链接2行,这个要先C-n移到下一行,而后M-^链接到上一行(Emacs的join是将本行与上一行链接,因此要先下一行)
吐槽了半天其实也没用,我从此尽可能摸索和学习出来一套更加合理的按键配置再推荐给你们.
以前用vim也有这个问题,若是换了一台机器,想让vim从新回到适应的状态须要很长时间的配置,须要把插件什么的装回来,总之就是各类麻烦.而若是我用sublime呢?直接用就能够了,sublime很好的初始配置基本作到了开箱即用,而emacs想要下一个安装文件就开始用,我以为还不如开记事本.这个问题曾经让我多次受挫,老是找不到一个好的方案.出现了网盘这个东西之后,能够把配置文件存一份网盘备用,可是你只要升级一下或者更新一遍就须要从新放到网盘里面.更况且若是你用U盘的话会面临丢失的问题.
直到如今,我终于找到了一个解决方案,它就是git.虽然git严格来讲就是一个版本管理工具,可是它确实是一个保存配置很是好的方案,我把个人配置文件放到了github上,不过只是做为本身快速让本身的emacs进入工做状态,没有什么参考价值,地址在这里 ,你们要学习emacs配置的话我以为steve purcell的配置 应该是在地球上能找到的最好的配置了,其实就直接拿他的配置替代emacs starter kit我以为也很是好.另外DEA 也是emacs中文网的一个做者的很是完备的配置.
要使用git来备份本身的emacs配置首先要会用git,这里容我强烈推荐一个软件SourceTree,一个免费的版本控制客户端,我以为在还不熟git命令行的状况下能够用它,虽然要求注册atlassian帐号,可是软件是免费的.git的基本操做我也不详细说了,这里写一下个人gitignore,你们能够结合别人的gitignore来防止git把一些没什么用的东西上传上去.
1 .smex-items 2 /auto-save-list 3 /backups 4 .DS_Store 5 places 6 /url/cookies 7 *.elc 8 *.el#
其实仍是很是不完备,之后个人github上也会不断更新
就这些吧,虽然还有不少要写的,留到之后分主题来写了.也容我多折腾一段时间积累些经验.