The content of this page is under Emacs.

在Ubuntu 10.10安装Emacs 23.2

Ubuntu 10.10 自带的 Emacs 是23.1 版本的。因为需要用到 js-mode 等不及 11.4 的同学可以从 PPA 安装 Emacs 23.2 :

sudo apt-add-repository ppa:ubuntu-elisp/ppa

sudo apt-get update && sudo apt-get upgrade emacs --purge

英文中文,Ubuntu下设定Emacs输入法的曲折经历

这片文章是在 Ubuntu 10.10 英文界面下,用 ibus-sunpinyin 在 Emacs 里敲出来的。它之所以存在完全是因为本人对中英混合环境要求过于苛刻,导致初学Emacs 的笔者经历了一次小小的波折。

DaNmarner 选择“出墙”(Sorry Vim)学习 Emacs 的三大原因之一是中英文混合输入的时候它的表现比 Vim 更加自然。后者的最强项在遇到中文输入以后变成了致命硬伤:命令模式在字母键上的绑定。即使经过了很多年的使用(例如本博客之前所有的中文文章都是在 Vim 下面写的),在从编辑模式切换到命令模式的时候避免命令被输入法程序截取还是一件很头痛,很影响效率的事情。

然而为了在 Ubuntu 这个麻瓜友好的环境里享受 Emacs 对以上问题的免疫力,笔者遭遇了两个问题。

第一回合:iBus 在 Emacs 里失灵了

通过 apt-get 安装了 Emacs 以后,一个英文 Ubuntu 用户会发现通过 Ctrl+空格 启动 ibus 在 Emacs 里毫无效果。

这个问题相信会用 Google 的同学都能解决:只要把 LC_CTYPE 的值设定为 zh_CN.UTF-8 就可以了。

保存这个值的位置有很多,比较明显的地方是 /etc/environment ,在这个文件最后加上

LC_CTYPE="zh_CN.UTF-8"

然后重启一下就可以在 Emacs 里正常启动 iBus 了。

这里澄清一件事,很多 Google 后出现的结果里说 Ctrl+空格 因为和 Emacs 默认的选择命令冲突而无法激活 iBus ,这其实是不对的。事实证明 X 会保证先于Emacs 截获它从而顺利激活 iBus 。不过为了 Emacs 避免使用这个组合还是有价值的,改成 Shift+空格 就不错,除非你喜欢 C-@ 多过 C-<SPC>。

一般来说,问题到这已经解决了。但对于 DaNmarner 来说,还有一个很头痛的问题。

第二回合:RTFM 的要求

一个无奈的现实:DaNmarner 已经习惯了英文的技术文档。中文文档虽然有爱,但因为从一开始就在英文环境里摸爬滚打,所以中文的 Emacs 手册看起来觉得很吃力……矛盾吧,还在用中文写作!(其实这也是为了 keep-up 自己的中文水 平。)

在修改了 LC_CTYPE 以后,Emacs 会很友好的把所有帮助/手册以中文显示(相对Vim 这是一个不错的优势)。可惜笔者(臭屁地)认为这是友好过度了!那么怎么找回英文手册呢?能不能不修改 LC_CTYPE 就让 iBus 正常工作呢?一番调查之后笔者的结论是:在 Ubuntu 下这还是一个未解之谜。

所以最终的 Workaround 是,保留 zh_CN.UTF-8 作为 LC_CTYPE 的值,使得 iBus 可用,然后在 Emacs 配置文件里强制设定语言环境为英文,既加入下面这行:

(set-language-environment 'English)

这是一个差强人意的方法,至少英文手册回来了,iBus-sunpinyin 也能用了。根本的解决办法,或许是背叛 Ubuntu 投靠其它发行版吧 :)