既然之前说过要写我怎么继续折腾Emacs的,过了一个星期这里就是第二篇了,突然觉得我把blog这样分节不是很好,每次可能要凑一些东西才有该有的篇幅,而且说的东西可能东一点西一点,这样一篇看下来不利于检索,所以这一篇过后会按主题来写,不再用原来的形式,有一点写一点,每次围绕一个主题来,这样比较好阅读一些.

今天写一些Emacs我刚入门遇到的困难,这里我拿目前很流行的sublime来与emacs做一个比较,看看emacs到底有哪些难处让人很难上手:

Sublime text

首先介绍下sublime text, 这个编辑器最近极为流行,也确实非常的好用,别的不说,从默认安装过后就会发现这个作者还是非常懂码农的,默认的配色就是molokai,虽然有些人不太喜欢这个配色,不过从vim的插件数量统计上就可以看到它有多么的流行.(当然我们的emacs如此的强大,区区一个配色方案还是有的.)一般来说写代码的话大部分人还是喜好偏暗的配色,比较不伤眼,而且颜色比较容易分辨.另外我们从图上也能看出来,sublime默认就有左边的一个小型的文件管理器(或者说project浏览器),默认就有行号,右边有代码地图,上面有tab,而这些都是默认配置!!不要小看默认配置,ruby on rails的一条最重要的原则就是约定大于配置,默认就把所有事情做好这一点太重要了,多少人想学emacs结果连键位都还不熟还得天天看着80年代机器一样的界面,打开配置文件以后又是"完全无法理解"的语言,就这样放弃了emacs.

相对于sublime text来说emacs缺少一个好的插件管理系统

这个问题在emacs24版终于被部分解决了,之前一篇也提到过这个问题,现在有了melpa这个和github社区力量结合的东西,写一个插件并发布变得十分简单,而且插件可以保持更新,这一点我觉得emacs已经做的不错了,也正是因为emacs开发者不断的努力,才使得emacs user还是不断有新人来学习和使用.今年来lisp方言的流行(比如我就是为了写clojure才用emacs的),各种小众语言没有IDE的支持,语言作者往往都倾向于先写一个emacs的mode来使用,clojure-mode至今仍是众多开发人员的首选clojure编辑环境,所有的lisp方言基本都是这么个状况.而且最近已经广泛普及的python和ruby在emacs上相应的插件都功能非常强大,比如python-mode我觉得使用熟悉以后效率比原来用pycharm还高.

说了半天好像在说emacs的好话,可能也是我近期都比较倾心于emacs的缘故.在插件系统上emacs的缺点是emacs lisp实在学习成本比sublime用python做插件来的高一些.这样将许多想按自己设想做插件的人拒之门外,不过我觉得相对于emacs如此高的学习成本来说emacs lisp反倒不应该是一个障碍,lisp我认为作为一个想提升自己的程序员都应该学习一下,就算知道一点皮毛最起码也拓宽了您的眼界不是?

emacs的插件群很大,而且不断有新的插件加入进来,上图是我接触了一点时间安装的一些插件,另外透露一下按我上一篇博客设置了源以后你就可以看到有1400多个插件可以安装啦.这在所有编辑器中应该是最多的了吧.

emacs的键位设置

这是我面临的很大的问题,特别是由于从vim转过来的,经常会打着打着突然ESC+hjkl,其实论纯文本编辑效率来说vim确实比emacs强.但是emacs这个东西更加适用于写,就是将脑中的内容敲入屏幕中这个过程.但不得不说是一个非常大的问题,我分一些点说,这块实在非常想吐槽.

上下左右移动

习惯了vim的人会觉得我这辈子在文本编辑器里面再也不用按上下左右四个键了,我甚至觉得相对于emacs user来说vim user更加适合HHKB这个神器,反正我最近自己还是买了realforce 104(不过也有点打游戏的因素在里面,有些游戏没有小键盘不好打).

我们来看看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和$强一些.

打开保存文件

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是将本行与上一行连接,所以要先下一行)

吐槽了半天其实也没用,我今后尽量摸索和学习出来一套更加合理的按键配置再推荐给大家.

Emacs的配置保存

之前用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把一些没什么用的东西上传上去.

 .smex-items
/auto-save-list
/backups
.DS_Store
places
/url/cookies
*.elc
*.el#

其实还是非常不完备,以后我的github上也会不断更新

就这些吧,虽然还有很多要写的,留到以后分主题来写了.也容我多折腾一段时间积累些经验.

我的Emacs折腾经验谈(二) Emacs上手难的原因的更多相关文章

  1. Emacs折腾经验谈

    Emacs折腾经验谈 这几天都没有动力写mongodb的东西,我果然还是太懒了么~ 主要是没有一个系统的东西整理出来,加上我令人拙计的语言表达能力,这个坑只能慢慢再补了. 最近在折腾emacs这个东西 ...

  2. 我的Emacs折腾经验谈(四) 也谈Yasnippet

    又是好久没更新了,不过还好,现在慢慢有点感觉了,好长时间不写博客会心里有点感觉欠一点什么东西.觉得每次写了东西都往主页推搞得压力好大,以后就不往网站首页推了,纯留下来供参考,另外就是主要方便从搜索找过 ...

  3. 我的Emacs折腾经验谈(一) 一些给新人的建议

    这几天都没有动力写mongodb的东西,我果然还是太懒了么~ 主要是没有一个系统的东西整理出来,加上我令人拙计的语言表达能力,这个坑只能慢慢再补了. 最近在折腾emacs这个东西,首先说我曾经算是个极 ...

  4. 我的Emacs折腾经验谈(三) speedbar , tabbar 还有linum-mode

    离上一篇博客已经很遥远了,最近总是各种逛,但没有心思静下来写点东西,这回写一下我之前用的一些东西. Speedbar 首先是speedbar,这个东西是emacs自带的,效果立竿见影,请输入M-x s ...

  5. Emacs 启动优化二三事

    Emacs 启动优化二三事 */--> div.org-src-container { font-size: 85%; font-family: monospace; } p {font-siz ...

  6. 创建.emacs.d目录和.emacs文件

    1.双击bin下的addpm.exe 2.HKEY_CURRENT_USER->Software->GNU->Emacs 新建字符串值HOME,数值数据为emacs的安装路径 3.创 ...

  7. [emacs] Drawing uml under emacs org-mode using plantUML - 类图

    [emacs] Drawing uml under emacs org-mode using plantUML - 类图 // */ // ]]>   [emacs] Drawing uml u ...

  8. Emacs学习阶段小结-Emacs常用快捷键总结

    首先推荐一下Emacs自带的Emacs Tutorial,跟着这个做一边,两三个小时,基本的使用就能掌握了.之后的神教程就有很多了,比如<Sams.Teach.Yourself.Emacs.in ...

  9. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

随机推荐

  1. JavaEE(1) - Weblogic 服务器管理的数据源

    JBoss下载: http://jbossas.jboss.org/downloads http://www.cnblogs.com/xw-cnblogs/articles/2439969.html ...

  2. Swift # Apple Pay集成

    苹果正式开放了Apple Pay支付系统.Apple Pay是一个基于NFC的支付系统,不久将被数以万计的线下零售商店予以支持.即便这项科技并不是彻底的突破性进展,但它足以推动许多公司和零售商来支持这 ...

  3. Unix命令操作

    基本命令 [ man 查看 ]--万能命令 1.ls 列出文件 (-al) 2.cd 转换目录 3.mkdir 建立新目录 4.cp 拷贝文件 (-R) 5.rm 删除文件 (-rf) 6.mv 移动 ...

  4. Windows系统下Redis的安装

    Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/. 最近 ...

  5. 使用Vs2005打造简单分页浏览器(1)原创

    原文:使用Vs2005打造简单分页浏览器(1)原创 使用Vs2005打造简单分页浏览器(1)原创1引言2功能3实现过程以及关键点4总结5不足之处6其他7 代码下载 1    引言很早就有搞一个浏览器的 ...

  6. C# 实现设置系统环境变量设置

    原文:C# 实现设置系统环境变量设置 以前实现系统环境变量设置时是要在电脑属性--高级--环境变量设置,实现方式主要有2种, 修改注册表,添加环境变量 调用系统Kernel32.DLL函数,设置环境变 ...

  7. Asp.Net MVC5入门学习系列⑥

    原文:Asp.Net MVC5入门学习系列⑥ 接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去 ...

  8. 使用Dropbox+Justwriting+Markdown建立个人博客

    使用Dropbox+Justwriting+Markdown建立个人博客,让您真正体会到什么是"简化". 您的博客所有日志存储在您的PC上.即使有一天你的server主机挂了,你的 ...

  9. 干净的架构The Clean Architecture

    干净的架构The Clean Architecture 这是著名软件大师Bob大叔提出的一种架构,也是当前各种语言开发架构.干净架构提出了一种单向依赖关系,从而从逻辑上形成一种向上的抽象系统. 我们经 ...

  10. C++关于数字逆序输出的两种思路,及字符串逆序输出

    C++关于数字逆序输出的两种思路,及字符串逆序输出 作者:GREATCOFFEE 发布时间:NOVEMBER 15, 2012 分类:编程的艺术 最近在跟女神一起学C++(其实我是不怀好意),然后女神 ...