背景

假期想尝试学习一下Emacs,发觉如果自己完全抛弃Vim的知识,从头开始学习Emacs的操作的话得不偿失。在互联网上搜寻到了一个专门为Vimmer所配置的Emacs入门包 Spacemacs,发现极其好用。

问题初现

我的Ubuntu配置一直不是很完美,从来都是在残缺中运行。就拿中文输入法来说,自从Ubuntu安装之后一直在使用ibus,勉强凑合着还能用。在使用Spacemacs的时候发现无法输入中文,无法切换输入法(然而并不是iBus的问题,后文解释)。

解决过程

以下是我尝试解决这个问题的过程,Post出来记下问题解决的思路

  1. mv .emacs.d .emacs.d.bak; emacs发现仍然无法输入中文,确定不是Spacemacs的问题
  2. 尝试安装Emacs包ibus,未果
  3. 网络搜寻,找到一个包叫做fcitx,是除ibus外的另一个输入法管理程序,安装
  4. sudo apt-get purge ibus卸载了ibus(事实证明不是明智的选择)
  5. 在Language Support里面设置输入法管理器为fcitx,并利用sudo apt-get install fcitx-pinyin fcitx-sunpinyin fcitx-googlepinyin安装了多种输入法
  6. 根据此文利用im-config设置了默认输入模式,重新登入Ubuntu
  7. 登入之后发现Ubuntu的System Settings不见了(汗),搜寻后发现是在第4步里删除了ibus的原因,利用sudo apt-get install ubuntu-desktop修复
  8. 尝试fcitx的各种输入法,发现都不错,但是其中谷歌拼音一句话只能输入n个字,多了不行,删除掉
  9. 打开Emacs,打开*scratch* buffer,尝试输入中文,仍然无法输入
  10. 搜寻后发现是没有设置locale,尝试LC_CTYPE=zh_CN.UTF-8 emacs发现中文输入法没问题
  11. 确定问题后在.profile里面加了一句话export LC_CTYPE=zh_CN.UTF-8以便不用每次都在终端中打开emacs。重新登入Ubuntu。
  12. 安装fcitx包 dotspacemacs-additional-packages '(fcitx)并在user-config中加入(fcitx-evil-turn-on),在启动时打开fcitx

所有配置完成,若输入法是中文的话在按下Esc回到Normal mode会自动切回英文输入以便执行命令。从Normal mode回到Insert mode的时候会自动切回中文输入法以便自动输入中文。赞!

References

Ubuntu Emacs Fcitx 中文输入法设置

Please add a useful function for East Asian people #3506

How do reactivate IBUS after upgrading to Ubuntu 13.10

Set up Fcitx for Chinese and Japanese language input on Ubuntu Trusty 14.04