Emacs配置管理框架Cabbage – 介绍

原文地址:http://defun.me/blog/2012-10-08/introduction-to-cabbage/

Emacs的配置是很繁琐的,而且不太好组织,常常看见网上的一些人把大部分配置都写在一个.emacs文件里面,而且各种第三方插件的管理也很混乱。我以前的配置文件就是这样的,后来在github上看到了emacs-starter-kit, 发现它的配置管理就做的比较好了,但是就如其名字所言,这个只是starter-kit,很多方面其实还是做的不够灵活,我当时试着把自己的配置慢慢迁移上去,遇到稍微复杂一点的配置,starter-kit就不太能hold住。然后我无意中发现了Cabbage这个项目,看了下源码,总算找到合适的了。

先看下Cabbage的介绍

cabbage helps you to manage your emacs configuration and allows you to stay in sync with other fellow emacs users. It is designed to be a community-driven framework to build your emacs configuration. The ultimate goal of cabbage is to provide a hassle-free, fast and robust emacs setup.

安装

过程跳过,官网上有教程,而且Cabbage还配了安装脚本,应该说安装还是很方便的。

注意 安装完成后,如果发现快捷键不能使用了,将~/.emacs.d/config中的 ergonomic 删除或者注释掉。这是因为Cabbage默认使用的是ergoemacs的快捷键binding,这个快捷键和大多数人的使用习惯是不一样。

Cabbage特性

  1. Cabbage最重要的概念是bundle,和Textmate以及Sublime Text的bundle很类似。Cabbage自己内置了接近40个已经封装好的bundle,开箱即用,包括:
    • Java
    • Python
    • Ruby
    • Javascript
  2. Cabbage的bundle与用户自己的.emacs.d不在同一个目录,所以可以分开更新
  3. Cabbage有system-specific的配置加载机制,用户可以在不同的电脑上使用不同的配置,这样就可以在配置中减少一些如 (if (eq system-name "xxx") 之类的代码
  4. Cabbage有user-specific的配置加载机制,但是我觉得意义不是太大

Cabbage缺点

添加新的bundle很麻烦:用户已经有了自己的一些emacs lisp代码,如果想将这些代码封装成一个bundle,就不好办了,因为Cabbage目前只能加载自己的git repo里面的bundle,如果用户想添加bundle,就只能先fork project,然后pull request提供一个bundle到git,然后通过了之后再在本地更新cabbage repo使用,这个过程是很麻烦的,而且用户所提交的bundle还不一定能被接受。 所以我现在也在给Cabbage写一个私有bundle加载的代码,还在code review的过程中

总结

我现在一直在使用这个,然后将以前的配置都迁移到了Cabbage下面统一管理,总体来讲,还是不错的,各种配置文件不在像以前那么乱了,当然,Cabbage还是一个比较年轻的项目,问题还是有的,像之前提到的不能加载自己的私有bundle什么的,不过慢慢应该都会解决的,Cabbage的开发人员也还挺活跃的,有什么问题他们也会很快解答。

posted @ 2012-10-10 06:58  天寒不宜裸奔  阅读(504)  评论(0)    收藏  举报