漫画 - 0xBABAF000L

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com, 所有引用图片版权由作者Laurent Grégoire保留

上次在介绍Emacs时, 我展示过一幅关于Emacs的四格漫画. 它出自一个与Unix Geek文化相关的系列漫画. 这个系列一共有20幅, 名字叫做0xBABAF000L, 作者是法国人, 叫做Laurent Grégoire. Link: http://tnerual.eriogerg.free.fr/0xBABAF000L/index.html

我很喜欢这种主题的笑话和漫画, 所以在这里也把它们介绍给你.

出场人物有六个, 分别是Debby, GNUT, Drake, The Dukes, Foxxy和The Bills. 它们有着不同的身份和各自的象征.

Debby

她是我们的女主角, 虽然她并不适合这个角色. 但我们需要一个主角,而她不幸地抽到了这个签. 她整天做着有趣却没用的, 貌似很有希望却只是不幸的事.

GNUT

他什么都知道, 却什么也不说. 是的, GNUT沉默寡言. 对他来说, 说话完全是浪费, 而浪费资源的事是绝不能做的. 当他有话要说时, 他总是讲得很隐晦. 还有, 他是Debby最好的朋友.

Drake

他什么都不知道, 但总说个不停. 他曾是法国贵族, 也是个蹩脚的魔术师. 人很死板, 而且做事常常心不在焉. 幸亏他还有所剩无几魔力, 才能给出些合理的建议, 但那也只是在他成功地想起咒语的时候.

The Dukes

它们数量众多, 也很讨人厌. 嗯, 它们大多数是这样的. 而且, 你必须时刻留意它们, 否则它们会把这里弄得一团糟. 它们也相当擅长浪费时间. 但撇开这一切, 它们还是很可爱的, 而且很乐于助人(前提是你准确地告诉它们, 你想要它们做什么).

Foxxy

它是只小狐狸! 每个人都认识它! 它能以惊人的速度取回你想要的一切. 有时, 如果你不管它, 它会在你意想不到的地方四处晃悠.

The Bills

他们的数量数不清, 每个都完全一样(虽然有时你能通过他们的衬衫的颜色分辨他们). 他们虽然很呆板, 但很恭敬, 也乐于助人. 他们的默认设置让人不爽, 总是把问题重复问你至少两遍, 却从不理会你的回答.

好了, 再来看几幅有趣的漫画吧, 点击图片放大.

这两幅是我最喜欢的, 很有趣的trick, 很Geek. 但后一幅的第一格里有个小Bug.

讽刺Windows的安全措施..

p2p, peer 2 peer? no, poor 2 pathetic, 穷人和值得同情的人的网络.

这幅漫画和系列中前面的几幅是连续的. 之前Drake开了一个ssh tunnel, Debby把一个RPM包扔进去的时候自己也掉进去了, 结果Drake和Foxxy好不容易找到Debby了, 却.. 怪只能怪Drake技艺不精, 开ssh的时候没加-X参数.

想看更多的漫画, 还是到作者的网站上看吧. 作者只允许我选一些我最喜欢的放上来, 可我每张都喜欢怎么办?

Update: 第13幅中, \exists f\in\mathbb{P}^{[\mathbb{R}]}_{\infty},f(\sqrt{\pi})=0说的是什么? 为什么表示"化圆为方"的问题的?

用最简单的方法让TeX Live支持中文

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

让TeX支持中文不是一件容易的事, 但我终于找到了一个简单的办法(应该说是傻瓜办法).

安装TeX Live和CJK. 在源里选择texlive, latex-cjk-chinese(如果需要日文和韩文支持, 那么选择latex-cjk-all)安装.

然后下载"YueWang-zhfonts-final_1.01.tar.bz2", 这是YueWang制作的TeX Live 2007使用的字体包, 有207M. 教育网里可以在这里下载, 教育网外可以在这里下载. 顺便分享一个很好用的FTP搜索引擎, http://run.hit.edu.cn/.

然后将解压后文件夹内的两个文件夹移动到你的Home目录里, 并在目录名前分别加 '.'(点号). 好了, 大功告成. 但根据安装说明 "如果不行, 请把~/.texlive2007/texmf-var/fonts/map/dvips中的所有map給enable了.", 我不是很了解这些, 等我进一步了解后再作解释吧.

编译一个tex文件来试试效果吧, 下面是tex文件的样例.

\documentclass{article}
\usepackage{<cjkpackage>}
\begin{document}
\begin{CJK}{<encoding>}{<fontname>}
你好!
\end{CJK}
\end{document}

其中<cjkpackage>可以是CJKutf8(源文件用UTF8编码)也可以是CJK(源文件用GBK编码), <encoding>是GBK或UTF8, 和上面的<cjkpackage>是对应的, 也就是是CJK那么必须是GBK. 而如果是CJKutf8,则就是UTF8. <fontname>就好说了,就是song, hei, fs,kai等等.

我的Linux日记[五]: bash的小技巧

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

  1. 我的Linux日记[一]: 让Ubuntu完全支持中文
  2. 我的Linux日记[二]: 重启后设备无法正常工作
  3. 我的Linux日记[三]: 系统为何无法启动
  4. 我的Linux日记[四]: 在Linux下播放多媒体文件
  5. 我的Linux日记[五]: bash的小技巧

bash是Ubuntu的默认终端, 也是大部分Linux发行版和Mac OS X的默认终端. 这篇日志记录了我在网上找到的和自己在使用中发现的一些使用技巧.

首先是一些快捷键
up & down 依次翻阅曾输入过的命令
ctrl + r 搜索曾输入过的命令, 但我不常用这个, 因为我有更方便的命令
ctrl + a 光标移动到行首
ctrl + e 光标移动到行尾, 这两个快捷键是Emacs风格的
ctrl + u 剪切光标之前的内容
ctrl + k 与上一个相反, 剪切光标之后的内容
ctrl + y 粘贴以上用以上两个快捷键剪切的内容
ctrl + w 删除光标左边的内容
ctrl + l 清屏, 和clear命令效果一样

我再来说说上面提到的更方便的搜索曾输入过的命令的方法. 在bash中输入过的命令都会保存在~/.bash_history里, 搜索这个文件就能搜索输入过的命令了. 在这里我们使用egrep这个支持正则表达式匹配的程序搜索.

cat ~/.bash_history | egrep REGEXP

这个命令可以显示匹配"REGEXP"的, 曾输入过的命令. 而如果使用ctrl + r搜索, 可能要按很多次ctrl + r才能找到需要的命令.

这个命令里包含了一个"|"符号, 这是在使用bash支持的"管道"功能. 管道, 就像是将程序输出的数据流装进了管子, 让它流向我们指定的地方(下一个程序). 比如这里, 我先将~/.bash_history的内容读取出来, 将它导入egrep, 让egrep用我输入的REGEXP来匹配这些数据. 再看一个用到管道功能的命令:

ls -l | more

"ls -l" 显示当前目录的文件和子文件夹的详细信息, "more" 可以让它分页显示. 是不是很方便?

bash里还有一个很有用的功能是"重定向", 它可以重定向程序的标准输入输出和标准错误输出.

例如:

ls -l > ls.txt

和上一个命令差不多, 不过这次是把 "ls -l" 显示出的内容写入了 "ls.txt" 这个文件里. 如果把上面的 ">" 换成 ">>" , 就变成了把那些显示的内容添加到 "ls.txt" 的末尾, 而不是覆盖这个文件.

好了, 回到刚才说的那个搜索输入过的命令的命令(绕口令..). 我仍然嫌每次写这么长的命令太麻烦, 于是我编辑了一下"~/.bashrc"这个文件. 在它里面添加了

alias shis='cat ~/.bash_history | egrep'

这样一行. 之后我想使用上面的命令就只需要用"shis"这个命令加上我要搜索的正则表达式就好了.

上面提到的"~/.bashrc"文件帮了我很大的忙, 因为它是你打开bash时会被调用的一个文件. 在里面写上一些常用命令的缩写, 在调用的时候就方便很多. 我的".bashrc"里有这些缩写, 一部分是系统自带了的, 一部分是我在网上看到的.

Bash语言: My .bashrc
# enable color support of ls and also add handy aliases
# 启用ls和grep等命令的自动高亮功能
if [ "$TERM" != "dumb" ] &amp;&amp; [ -x /usr/bin/dircolors ]; then
eval "` dircolors -b`"
  alias ls=' ls --color=auto'
  alias dir=' ls --color=auto --format=vertical'
  alias vdir=' ls --color=auto --format=long'

  alias grep=' grep --color=auto'
  alias fgrep=' fgrep --color=auto'
  alias egrep=' egrep --color=auto'
fi

# some more ls aliases
# 很方便的, 而且很容易理解吧
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

# my aliases
alias rm='rm -i' # 删除前需要确认, 防止误删
alias ..='cd ..'
alias server_name='ssh -v -l username server' # 对常用ssh的人很有用, username和server请自己替换
alias shis='cat ~/.bash_history | egrep' # 刚刚说过的

这里的代码高亮用到了代码发芽网的功能, 比WP的<code>强大, 但代码长度也要长些.

好了, 再额外提一个我知道的命令.

find . -perm /u+x -type f -exec rm {} \;

删除当前目录里所有的可执行文件. 在我清理存放我做题的文件夹时很有用, 因为我会编译一堆没有扩展名的可执行文件, 但删除时却也可以用一条命令全删除, 很好吧?

我的Linux日记[四]: 在Linux下播放多媒体文件

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

  1. 我的Linux日记[一]: 让Ubuntu完全支持中文
  2. 我的Linux日记[二]: 重启后设备无法正常工作
  3. 我的Linux日记[三]: 系统为何无法启动
  4. 我的Linux日记[四]: 在Linux下播放多媒体文件
  5. 我的Linux日记[五]: bash的小技巧

在Linux里工作累了, 你可能会想听听歌, 看看电影. Linux对多媒体文件的支持怎么样呢?

我觉得已经不错了, 至少能满足我的需求了.

我没有钱去购买好的显卡, 大容量的硬盘, 租用高速的网线, 或者购置 BD 光驱. 因此我不看高清视频. 如果你需要在 Linux 下欣赏高清视频, 我无法给你提供任何帮助. 我只需要听听歌, 看看 DVD, 偶尔从互联网上下载一些 DVD-RIP.

媒体播放器, 我推荐使用 SMPlayer. 这是MPlayer的一个外壳, SMPlayer 可以设置界面的语言(中文语言包里有部分菜单未汉化), 界面风格. 当然, 作为一个前端程序, 这是它该有的功能. MPlayer 之所以强大, 是因为它拥有 w32codecs 这样一个强大的解码器. 它可以 WMV, RM, DivX 等等很多编码格式. 至于播放mp3等格式的解码器, 因为我之前用 Totem 播放 mp3 的时候, 系统自动从源中更新了解码器, 但我不清楚MPlayer是不是也调用了这个解码器. 希望清楚的同学告诉我一下.

你可以从 apt 源中获取 SMPlayer, 可以在这里找到最新的 w32codecs 的下载地址, 如果你和我一样在使用 ubuntu, 请下载 deb 包后安装.

但此时, 你可能还无法播放网页里嵌入的音频和视频文件. 没关系, 只需要在 apt 的源里找到一个叫"mozilla-mplayer"的程序安装上.

sudo apt-get install smplayer mozilla-mplayer

如果你使用 Firefox, 你可能会需要一个叫做 "MediaWrap" 的扩展来让你的 Firefox 支持更多的嵌入式多媒体文件. 它能够将 ActiveX 控件方式的网页内嵌媒体转换成 Firefox 能够支持的 Plugin 方式, 从而使 Firefox 也能够象 IE 一样正常播放它们. 你可以在这里下载到这个 Firefox 扩展.

但我发现SMPlayer虽然能支持 ape 解码, 但不支持使用cue分轨. 于是我安装了 wine 1.0, wine 了 foobar 2000 来播放 ape 文件. 我发现听歌还是foobar用着比较顺手! 我会在这个系列的下一篇日志中介绍 wine 的安装与使用(剧透: 在我配置 wine 的过程中发生了让我莫名其妙的事..). 这个下一篇不会让你等太久的!

下面是一些截图.

1. SMPlayer 的界面

Snapshot of SMPlyer

2. wine 出来的 foobar

foobar in wine

Emacs网站书签

学习使用Emacs, 最好的资料当然是Emacs Manual. 但很多人都不愿意啃这样一本大部头的英文书, 于是就有了下面这些网站.

王垠的主页 http://docs.huihoo.com/homepage/shredderyin/index.html

2003年清华的退学博士生, 曾引起全国范围的争论. 他的那篇《我的清华梦》讲述了他的经历和选择退学的理由, 推荐大家去搜索到看看. 他写的关于Linux, Emacs, LaTeX, Metapost等内容的文章, 也是很难得的好文章! 甚至还有关于滑板的内容. 值得强烈推荐!

曹乐的个人主页 http://www.caole.net/diary/index.html

这位也是清华的前辈, 也是喜欢Linux的牛人. 他的主页上有关于Emacs, Vim还有SVN的内容, 也是不错的资料.

EmacsWiki http://www.emacswiki.org/cgi-bin/wiki

关于Emacs的配置, 扩展等方方面面的技巧. 搜索功能很方便, 一些小问题都可以在这里找到解决方法.

Emacs中文站 http://www.emacs.cn

Emacs中文站的内容不是很全, 很多内容的文档都没有, 但关于dired, guns等扩展的介绍还是值得一看的.

The very unofficial dotemacs home http://www.dotemacs.de/

这个网站存储了很多人的dotEmacs文件, 你可以在里面找找看别人是怎么配置他们的Emacs的. 当然, 你也可以把你的dotEmacs文件发上去和别人共享.

Emacs中文化指南 http://man.chinaunix.net/newsoft/Emac/book.html

有些老的指南了. 在Emacs23里已经不需要像这样复杂地配置中文字体了, 在我的这篇日志里有Emacs23里中文配置的说明. 但这里的Elisp扩展的介绍还是不错的资料, 也看看吧.

这些都是别人写的资料, 如果你的问题在这里找不到答案呢? 那也可以到下面的论坛, USENET新闻组去提问. 我这里给的都是中文社区, 英文的社区没有参加过, 不是很清楚.

Ubuntu中文社区-Emacs与Vim版 http://forum.ubuntu.org.cn/viewforum.php?f=68
USENET-cn.bbs.comp.emacs http://groups.google.com/group/cn.bbs.comp.emacs/topics

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". "80x36"是窗口的"宽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的字体和语法高亮的颜色.

我的Linux日记[三]: 系统为何无法启动

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

  1. 我的Linux日记[一]: 让Ubuntu完全支持中文
  2. 我的Linux日记[二]: 重启后设备无法正常工作
  3. 我的Linux日记[三]: 系统为何无法启动
  4. 我的Linux日记[四]: 在Linux下播放多媒体文件
  5. 我的Linux日记[五]: bash的小技巧

这个系列的文章很久都没有更新了, 不是因为我对学习Linux和继续记录我的心得失去了信心. 相反, 我将继续坚持下去, 因为当你开始使用Linux后, 你会发现你无法拒绝Freedom的诱惑.

这件事情要从一个月之前说起, 觉得我啰嗦的可以跳过这三段, 直接切入正题. 当时, 我的电脑在我玩游戏时就会死机. 由于在这之前我并没有更改过任何配置, 也未重刷过显卡BIOS或尝试最新的显卡驱动, 我自然会认为是显卡散热不佳引起的自保护. 于是在通电开机的状态下, 我打开了电脑的机箱盖, 让机箱平躺在地上. 可不幸的事就这样发生了, 我放在桌上的机箱螺丝从桌边滚落, 而且正好落在了放在地上的机箱里, 短接了机箱里的某个部分. 主板毫不含糊, 立刻掉电, 留下我一个人面对黑洞洞的显示器..

然后电脑就再点不亮了, 我初步判断是主板烧了. 因为是过了包修期的板子了, 只有等周末的时候去电脑城二手市场修了, 而是否修得好, 我不作指望.. 不过万幸的是在仅仅更换了一个三极管后, 这块主板又活过来了, 而我最终为这颗螺丝付出了30RMB..

在这之后对显卡的检测中, 发现它确实是坏了. 但只是GPU的3D加速部分出现了问题, 也就是说除了不能玩游戏, 这家伙都挺能干的.. 所以我也就把它暂时留了下来, 等它彻底报废了再说吧..

但在这之后, 我的Ubuntu就进不去了. 在启动的时候会在进度条刚开始读的时候卡住, 而用Ubuntu 7.10的LiveCD启动就会出现一个"BusyBox"的shell(不知道我这说法对不对..), 屏幕上显示类似下面的内容.

BusyBox v1.1.3 (Debian 1:1.1.1_5 ubuntu 7) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs)[66.936475]ata 3.00 failed to set xfermode (err_mask=0x40)
[102.082200] ata3.00:failed to set xfermode (err_mask=0x40)
[137.227897] ata3.00:failed to set xfermode (err_mask=0x40)
[137.897565] 8139 cp 0000:02:0c.0:This (id loec:8139 rev 10) is not an 8139c+ compatible chip
[137.897614] 8139 cp 0000:02:0c.0:Try the "8139too" driver instead

然后就停下来了.. 我最初认为是显卡坏了, Ubuntu进不去了(如此不可能的想法怎么出来的..). 但我后来发现Ubuntu 6.06的LiveCD可以进去并且可以安装(我把原来装的7.10删了..). 直到昨天, 我想起来去Google搜一搜才真正明白问题所在.

事实上, 是因为在修主板时, CMOS被清空了, 而CMOS里对SATA的设置也归到了默认设置. 只要把SATA模式的选项从"Enhance mode"改成"Combine mode"或者"Auto"就可以了. 就这么简单的一个设置, 确实让我郁闷了很久.

我的Linux日记[二]: 重启后设备无法正常工作

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

  1. 我的Linux日记[一]: 让Ubuntu完全支持中文
  2. 我的Linux日记[二]: 重启后设备无法正常工作
  3. 我的Linux日记[三]: 系统为何无法启动
  4. 我的Linux日记[四]: 在Linux下播放多媒体文件
  5. 我的Linux日记[五]: bash的小技巧

其实这篇早就该写了的.. 因为懒.. 一直拖到现在才写.. 不过我真的很久没进Ubuntu了, 因为在用户体验上, Windows远胜过了Linux. 我仍只能和大多数人一样, 用Windows, 而只是学Linux.

上次说到了我解决了安装, 中文语言支持, apt源的问题, 我在那篇日志里说的灵异的网络问题是我的网卡(一块板载的, 一块是8139的)总是一会能用, 一会又不能用. 开始的时候没有发现网卡罢工的规律, 检查网卡的连线, 把机箱开着弄了半天. 后来发现, 总是在把电源关掉, 把网卡拔掉或者插上去之后就又能用了, 在从Windows重启之后网卡就罢工了.

不知道你注意过没有, 从Windows里选择重启的时候, 开机自检的某些环节是被跳过了的: 屏幕上不会显示CPU的频率和内存的大小, 我的两台台式机都是这样. 曾在我的电脑上装过破解的Mac OS X, 但重启功能不能用, 直到我按照某篇帖子的指导更改了重启时发送给BIOS的指令后, Mac OS X才能正常重启. 这让我想到了会不会是Windows和Linux在重启时向BIOS发送的指令不一样? 但我没在网上找到这方面的资料, 有清楚的朋友能告诉我一下么?

最后, 我每次从Windows重启进入Ubuntu后都会再从Ubuntu里重启一次. 麻烦..