emacs 新手之配置颜色配置 扩展elisp

From : http://hi.baidu.com/ruanbanyong/item/ad6158e53b4db1276cabb801

    emacs白色背景开起来是不是特别的刺激眼睛,特别是对于长时间做文本编辑比如编程序。经过半天超找,终于找到一个比较好的解决方案
3. Emacs入门指南[三]: 使用Elisp扩展

在这篇日志里, 我将以"color-theme"这个扩展为例, 介绍如何使用Elisp扩展, 让你的Emacs更强大.

"color-theme"能让你方便地修改Emacs的配色.

首先, 从color-theme项目的网站上找到它的下载地址, 现在最新的版本是6.6.0.

然后在你的Home里建一个文件夹(例如"elisp"), 将刚刚下载的归档解压出来. 虽然这些工作在图形界面里都能很容易地完成, 但既然这篇日志有一个"Linux"的Tag, 那就来复习一下怎样在命令行里完成这个工作吧. 这里假设你把"color-theme-6.6.0.tar.gz"文件放在了"~/download"目录里.

cd ~ 
  
 mkdir elisp 
  
 cd elisp 
  
 tar -zxvf ~/download/color-theme-6.6.0.tar.gz



OK, 然后在".emacs"里加入这样几句话. 不知道".emacs"文件是什么? 去看这个系列的上一篇日志吧.
(add-to-list 'load-path "~/elisp")
(require 'color-theme)

第一句是将"~/elisp"这个目录加入到"load-path"变量中. "load-path"变量里记录了Emacs搜索装载文件的目录, 将"~/elisp"加入进去, Emacs才能找到我们刚刚添加的Elisp扩展文件.

第二句是调用"color-theme"扩展. 至于调用的方式, 通常在Elisp扩展的README文件里都有介绍.

重启Emacs, 在"Tools"菜单里就多出来一项"Color Themes". 点击它, 会打开一个叫做"*Color Theme Seletion*"的Buffer. 在这里列出了很多不同风格的配色方案, 选择(用方向键或者C-p, C-n)一个配色方案, 按"i"键就可以预览配色效果. 多找找吧, 九十个配色方案里应该有你喜欢的了. 我在GTK里使用的是"Blue Mode", 在字符界面下用的是"Aalto Light".

选好了喜欢的配色方案, 可以回到刚才那个Buffer里, 将光标移动到你选中的那个项目上, 按"p", 会在一个新的Buffer里打印出一段代码. 把这些代码保存到"~/.emacs-color-theme". 还记得怎么保存文件么?

C-x C-s ~/.emacs-color-theme

下一步是去修改".emacs"文件.

首先在"(require 'color-theme)"前加上分号";"将这一行注释掉.

然后在它的下面加上这样的两行

(load-file "~/.emacs-color-theme")
(my-color-theme)

之所以注释掉"(require 'color-theme)"而仅仅只载入我们刚刚导出的文件, 是因为在启动时载入color-theme.el要比载入我们导出的文件要慢. 因此这样可以稍稍加快启动速度.

至于如何创建完全由自己定义的配色方案, 我没有研究, 因为我懒.. 不过README里有介绍, 勤快的同学自己去研究吧.

好了, 把".emacs"文件存盘(再复习一下, C-x C-s)后重启Emacs, 看到新的配色方案了吧.

小结一下, 在Emacs里使用扩展, 首先要把存放扩展文件的路径加入"load-path"变量里, 然后要根据扩展里介绍的方法, 在".emacs"里调用扩展(这个不一定, 如果你不需要它随Emacs启动自然就不需要添加了).

总结. 这个系列日志到此结束, 因为如果你认真读了"Emacs Tutorial", 并认真读了我这三篇日志, 就应该能上手Emacs了. 虽然你还不能自如地配置它, 但它至少不再像个巨大的怪物一样可怕了. 这也正是我写"Emacs入门指南"和"我的Linux日记"的目的. 我希望我的日志能为初学者引路, 打开一扇通往奇妙世界的窗. 但想要真正领略其中的乐趣, 还少不了你自己的探索. 我很乐意与你分享探索未知的乐趣, 欢迎留言, 欢迎给我写信. 我的Email地址可以在About页中找到.

最后废话一句: 学好Emacs是不容易的, 是需要时间的, 但学好它能让你工作起来更顺手, 正所谓"磨刀不误砍柴功".
(我在这里使用成功了好高兴哈哈,搞了我一下午,最终是路径的原因好郁闷阿)