要充分享受emacs的乐趣必然是从装插件开始的。
-
与ubuntu等一样,先换个国内的源
(require 'package)(setq package-archives '(("gnu" . "http://elpa.zilongshanren.com/gnu/")("melpa" . "http://elpa.zilongshanren.com/melpa/")))(package-initialize)
-
好的插件
这里其实因人而异,但是有几个包是所有地方都用的上的。helm:这是一个功能强大的命令提示框架。支持正则,按下空格后进行二次搜索,左右方向键在历史命令与可用命令间切换。。
比如helm-M-x
,功能与原来的M-x
一样。但是更加友好方便。如果想开启某项mode又想不起来,如linum-mode
:显示行号。先看看有哪些mode
,先调用helm-M-x
再键入.*-mode
。有好多,行号跟line 有关系吧。 再按下SPC li
,马上就看到了。完整命令.*-mode li
helm-ag:使用helm扩展的
ag
命令。需要先安装ag
。这个命令可以查询目录中所有文件的内容。同样支持正则,收益于helm,可以很方便的跳转与二次搜索。我的配置文件基本上是使用这个的:https://github.com/tuhdo/emac...
解决冲突。
装上一大堆插件后,不可避免地遇到了按键冲突。
global-set-key
:(global-set-key KEY COMMAND)
,例:(global-set-key (kbd "C-c k") 'helm-ag )
local-set-key
:用法一样但是将按键绑定到local-map上。-
define-key
:(define-key KEYMAP KEY DEF)
将快捷键绑定到keymap中。
KEYMAP是一个存储按键信息的特殊结构,使用make-sparse-keymap
构造一个空的keymap,而make-keymap
构造一个所有按键为空的keymap。
KEY 绑定的按键:(kbd "")
|[remap COMMAND]
|[t]
:随机分配一个
DEF 的类型:
nil (means key is undefined in this keymap),
a command | symbol(a Lisp function suitable for interactive calling),
a string (treated as a keyboard macro),
a keymap (to define a prefix key),如果自定义了keymap,还需要配合mode
(define-minor-mode )
中填写:keymap
参数来使得keymap生效。