前言

这几天终于下定决心学习使用emacs,其中有一些是必然的,另一方面也是偶然的心血来潮. 必然是因为之前博客因为GAE改版迁移到BAE上面之后,又由于BAE取消了域名绑定,导致博客访问出现问题,到这几天决心使用

1
github pages
来撰写博客也就是几天的时间.

就是这几天让我接触了

1
github pages
,
1
ruby
,
1
jekyll
,
1
emacs
等之前没有接触过的新鲜事物,也就是这几天让我从研二开始的时候浑浑噩噩的生活又找到了学习的动力.

或许之前有动过学习emacs的心思,但是一方面是对于违反人类行为方式的软件的恶感,另一方面也是畏惧emacs陡峭的学习曲线.

但是这几天的接触让我认识到emacs并不难,也并不反人类,而且是一个很人性化,自动功能很强大的编辑器,上手也并不困难,关键是你学习emacs的理念是否正确.

正文

学习emacs的理念

在下定决心学习emacs的这几天里,我看到的最好的一篇文章就是 “一年成为Emacs高手(像神一样使用编辑器)”.
我非常欣赏这篇文章里面提到的几个观点,就是这些观点解开了我对于emacs之前的一些误解.(非常感谢作者 陈斌(redguardtoo)的慷慨无私的倾囊相授)

下面先来说一下对于我启发尤其大的几个方面

1.emacs是一个定制度非常高的工具,你几乎可以用它干任何事,但是这是对于高端使用者的,对于你而言,在开始学习的时候要明确你要用emacs做什么?你现在迫切想解决的问题是什么.

  • 我对于这个问题的解答就是上面一个问题,我想用
    1
    emacs
    
    整合
    1
    github pages
    
    使用
    1
    markdown
    
    非常方便的来撰写博客. 所以我在一开始关注的重心就是如何使用emacs快速的撰写markdown以及使用git.

2.站在巨人的肩膀上,emacs的定制功能非常强大,但是从一开始就从配置文件甚至是lisp开始学起是非常傻的办法,因为你会发现你掉进了深渊, 而找个借口逃避繁琐的emacs.

  • 而真正应该使用的方法是模仿牛人的配置,学习牛人如何使用emacs,所以我就使用了这篇博客推荐的名为 prelude的配置文件,用了之后emacs马上就能开始为我所用了, 而不是我为emacs繁琐的配置文件所用.

这两点对我启发颇大,也为我解决了之前一直不想学习emacs的疑问,所以我就畅快的开始学习emacs了.

遇到的一些问题

一开始使用emacs,遇到的问题可谓多不胜数,在这里我只是挑几个讲一下.

1.首先是对于配置文件的问题,我发现使用prelude配置文件之后,我的

1
.emacs
配置文件就无法使用了,因为如果建立了
1
.emacs
文件,那么prelude的设置就无效了. 后来看了一下配置文件书写格式之后,就发现其实直接用load-file命令load prelude的配置文件就好了. 建立
1
.emacs
文件,在其中添加如下一行:

1
(load-file "prelude的init.el的文件位置")

这样设置之后就可以在

1
.emacs
文件中添加自己需要的配置了.

2.eshell对于多字符集的支持问题.由于我使用的jekyll没有修改代码,但是默认其只支持utf-8编码,而默认的GBK编码就会有一些问题, 之前一直使用

1
chcp 65001
命令将命令行转换为utf-8模式,但是后来发现这个方法在eshell里面失效了,可能是由于其本身使用的是缓冲区的方式工作的原因.

但是这样就着实让我伤脑筋了,因为本身就是要使用这个东西写博客,所以这个问题是必须解决的,后来试了修改环境变量

1
LANG
1
LC_ALL
等办法都不起作用.

最后在网上也google了一下,没有人谈到这个问题,而我又尤其不想使用修改代码的方法来解决这个问题,因为修改代码是不得已而为之的,之后jekyll 升级了,那又不知道会出现什么其他问题.

经过我反复尝试,大胆假设,小心求证之后,发现本身emacs自带的shell(看清楚了不是eshell)中使用

1
chcp
命令有效,这样才将这个问题解决.