Emacs入门指南

Emacs入门指南[三]: 自定义配色, 使用Elisp扩展

本文在CC版权协议下发布, 转载请注明出自aifreedom.com

  1. Emacs入门指南[一]: 历史简介, 编译安装
  2. 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是不容易的, 是需要时间的, 但学好它能让你工作起来更顺手, 正所谓”磨刀不误砍柴功”.

Emacs入门指南[二]: 字体美化, 窗口大小的调整

本文在CC版权协议下发布, 转载请注明出自aifreedom.com

  1. Emacs入门指南[一]: 历史简介, 编译安装
  2. Emacs入门指南[二]: 字体美化, 窗口大小的调整
  3. Emacs入门指南[三]: 使用Elisp扩展

Emacs是一个高度可自定义的编辑器, 它的配置文件使用Elisp语言描述. “Elisp”是”Emacs Lisp”的缩写. 如果你还不会Elisp怎么办? 没关系, 我也还不会, 一样可以将Emacs配置得很顺手.

Emacs 的默认配置文件是”.emacs”, 也叫做”dotemacs”, 它的默认存储在Home目录中, 它的路径是系统环境变量”home”指向的文件夹. 在Linux中用符号波浪号(tilde)”~”代表”home”指向的路径, 不过在Windows中似乎没有类似的符号. 在Windows下, “.emacs”文件通常被存储在”C:\”或者”C:\Documents and Settings\[User name]\Application Data\”下. 由于Windows中以符号点(dot)”.”开头的文件名是非法的, 所以你不能在资源管理器里创建这个文件. 有时, Emacs会帮你建好这个文件, 但如果它没帮你, 你就自己用Total Commander建一个吧. 不过, 下面的字体设置我仅仅在Linux下尝试过, 不保证能在Windows下有效. 而且我觉得, 在Windows下的默认字体就不错了..

这段话写给不是很熟悉Linux的朋友. 在Linux中, 以点”.”开头的文件是默认隐藏的, 所以你可能无法从你通常浏览文件的窗口里看到”.emacs”文件. 那么就使用Emacs来打开它吧, 在Emacs里输入

C-x C-f ~/.emacs

来打开它. 看不懂这个命令? 那么你应该先看看Emacs里自带的Tutorial. 这个命令说的是: 按住Ctrl再按x, 都松开, 再按住Ctrl再按f, 都松开, 再输入”~/.emacs”.

如果你觉得你现在还无法熟练地在Emacs里编辑文件, 那么用gedit打开它吧. 但gedit里没有Elisp的语法高亮.

将下面的代码复制/粘贴到”.emacs”里, 然后重启Emacs, 你会发现中文字体变得漂亮了许多. 当然, 你得先安装”文泉驿”中文字体. 这是一个开源的免费中文字体, 这里是这个开源项目的介绍页面, 你可以在这里下载到可以方便安装的deb包. 或者, 你可以选择其他的字体.

(set-default-font "courier 10 pitch-12")
(set-fontset-font "fontset-default"
'han '("WenQuanYi Bitmap Song" . "unicode-bmp"))
(set-fontset-font "fontset-default"
'cjk-misc '("WenQuanYi Bitmap Song" . "unicode-bmp"))
(set-fontset-font "fontset-default"
'bopomofo '("WenQuanYi Bitmap Song" . "unicode-bmp"))
(set-fontset-font "fontset-default"
'gb18030 '("WenQuanYi Bitmap Song". "unicode-bmp"))
(set-fontset-font "fontset-default"
'symbol '("WenQuanYi Bitmap Song". "unicode-bmp"))
(add-to-list 'default-frame-alist '(font . "courier 10 pitch-12"))

然后, 你可能会发现起始窗口的大小发生了变化. 如果你和我一样还在使用17寸CRT显示器, 可能窗口已经超出屏幕之外了. 没关系, 在你的Home文件夹里新建一个”.Xdefault”的文件, 然后在文件中输入以下内容.

Emacs.font: courier 10 pitch-12
Emacs.geometry: 80x36+50+74

Emacs.font设置的是默认字体, 这个我们已经在”.emacs”里设置了, 但由于”.Xdefault”先于”.emacs”加载, 所以我还是在这写了一个. (这个的用途我不是很清楚, 希望有高手能指点一下.)

Emacs.geometry设置的是默认窗口的大小和位置, 格式是”WIDTHxHEIGHT+XOFF+YOFF”. “80×36″是窗口的”宽x长”, 单位分别是列和行; (XOFF, YOFF)是窗口左上角相对桌面左上角的坐标, XOFF是水平方向距离, YOFF是竖直方向距离, 单位是像素.

保存文件后在终端中输入

xrdb ~/.Xdefaults

重启Emacs就可以看到修改后的效果了.

但如果你觉得Emacs默认的配色方案不够cool, 那还是期待我的下一篇”Emacs入门指南”吧. 我会在下一篇里介绍一个Emacs插件, “color-theme”. 它自带很多种很cool的配色主题, 方便和我一样的懒人使用. 当然, 有艺术天赋的你也可以选择自己配色. 它的效果到底如何? 看看我的Emacs的截图就清楚了.

Emacs入门指南[一]: 历史简介, 编译安装

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

  1. Emacs入门指南[一]: 历史简介, 编译安装
  2. Emacs入门指南[二]: 字体美化, 窗口大小的调整
  3. Emacs入门指南[三]: 使用Elisp扩展

Emacs是什么? 它是具有很强的扩展性的一个免费文本编辑器. 但由于它强大的扩展性, 它的功能早已超越了一个文本编辑器. Emacs在程序员中十分流行, 很多人登录系统之后就把会Emacs打开, 使用它编写代码, 收发邮件, 登录新闻组, 访问Internet, 在IRC中与其他人讨论问题, 而直到注销登出的时候才会将Emacs关掉. 一个著名的UNIX笑话是这样说的, “如果Emacs环境里有一个好的编辑器的话, 它就不至于这么糟糕了.” 而如果你对Emacs和Vim稍有了解, 你就能看懂下面的这幅漫画. (点击这里可以链接到创作这个系列漫画的作者的网站. 这个作者创作了一系列Geek主题的漫画, 等我全部看完了再另写一篇日志作详细介绍.)


Copyright (c) 2007 Laurent Gregoire

Emacs已经有超过三十年的开发历史, 它的开发始于MIT AI Lab, 最初只是一组TECO的宏包. 后来由Richard Stallman开发的GNU Emacs成为了最流行的Emacs版本, 我们平时说到的Emacs也是指的GNU Emacs. 它的源码和扩展都是使用GPL授权的, 这意味着你可以自由地测试, 更改, 重新分发它的源码. 你可以从Wikipedia上获取更多关于Emacs的历史, 特性, 和使用介绍. 现在, 你可以在Linux, Unix, Windwos, Mac OS, 甚至某些PDA上使用Emacs. GNU Emacs的主页是http://www.gnu.org/software/emacs/, 最新发布的稳定版本是Emacs 22.2.

这是我在Emacs中使用gdb调试C++程序的截图, 如果对这个强大的编辑器感兴趣的话请继续看下面的安装步骤.

如果你在使用Ubuntu或者其他基于Debian的Linux发行版, 你可以使用

sudo apt-get install emacs

来安装源中最新的稳定版Emacs版本(通常是Emacs22.1, 因为22.2是3月26日刚刚发布的, 很多源还没有更新). RH, 或者FC我很久没用了, yum的命令记不请怎么用的了.. 所以这里只写Debian的安装方法了.

但由于Emacs23对Unicode和xft的支持, 使得在Emacs 23中配置中文环境更加方便. 但因为Emacs23是仍处在开发中的版本, 可能在某些情况下不稳定, 但我用了一段时间发现并没有太大的问题, 而新版本的功能(Unicode的支持)是我很需要的, 所以我选择使用Emacs23, 也推荐大家都使用Emacs23. 我的这个系列文章的配置说明都是针对Emacs23写的.

如果你仅仅是个普通的软件使用者, 并不想自己下载源码并编译安装Emacs, 你可以在将下面的源的地址(请按照自己的操作系统的版本, 选择对应的源)加入”sources.list”文件. 添加的方法在我的这篇日志里有说明.

Ubuntu 6.10 “Edgy Eft”
deb http://ppa.launchpad.net/avassalotti/ubuntu edgy main
deb-src http://ppa.launchpad.net/avassalotti/ubuntu edgy main

Ubuntu 7.04 “Feisty Fawn”
deb http://ppa.launchpad.net/avassalotti/ubuntu feisty main
deb-src http://ppa.launchpad.net/avassalotti/ubuntu feisty main

Ubuntu 7.10 “Gutsy Gibbon”
deb http://ppa.launchpad.net/avassalotti/ubuntu gutsy main
deb-src http://ppa.launchpad.net/avassalotti/ubuntu gutsy main

在更新软件包列表(sudo apt-get update)后, 在终端里使用

sudo apt-get install emacs-snapshot

来安装新版的Emacs. 在下载安装完成之后, 你就能在菜单里找到Emacs了, 运行它试试看吧! 你可以在菜单里找到”Help->Emacs Tutorial”, 在这篇简短的教程里, 你可以学习到Emacs最基本的操作方法. 可能你会发现它的字体看起来有些不舒服, 那就请期待着这个系列的下一篇日志吧. 不过我需要提醒你的是, Emacs不是那么容易上手的. 刚开始使用的时候你会觉得什么都用不顺手, 但你一旦熟悉了它的操作并最终成为使用Emacs的高手, 你就会发现它是如此地好用, 以至于你真的把它当成是操作系统, 而不仅仅是一个文本编辑器. 而到那时, 你也就能明白上面那则Unix笑话是什么意思了.

但如果你有Geek的精神, 想获得最新的Emacs的源码并自己编译, 那么请按照我下面说的步骤做吧.

首先安装cvs和ssh

sudo apt-get install cvs ssh

然后用cvs从GNU的服务器上下载最新的Emacs源码.

export CVS_RSH="ssh"
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/cvsroot/emacs co emacs

如果网速比较慢的话(我应该算是的..), 这个下载的过程会持续半个小时以上.

在用cvs下载的同时, 你可以去配置编译环境. 具体需要哪些包我记不太清了, 照我这样的应该没什么问题了吧.

sudo apt-get install build-essential
sudo apt-get build-dep emacs-snapshot

然后等Emacs的源码下载完毕后, 执行以下命令编译安装.

cd ~/emacs
./configure -enable-font-backend --with-xft --with-freetype --with-x-toolkit

如果这一步没有出现Error, 那就基本上没有问题了, 可以继续编译了. 否则请根据屏幕的提示安装相应的软件包.

make bootstrap
make info
sudo make install

然后你可以输入emacs来体验一下自己编译安装的Emacs了! 当然, 你也可以从菜单里找到Emacs启动.

在起始页面里就有”Emacs Tutorial”的链接, 我强烈建议你先看看这个熟悉Emacs最基本的操作, 再去考虑如何定制更强大的Emacs. 这个Emacs的指南已经被翻译成中文版, 应该不存在阅读上的障碍. 因此在下一篇日志中, 我将默认我的读者都是认真读过这篇”Emacs Tutorial”的, 直接介绍如何自定义Emacs的字体和语法高亮的颜色.