要充分享受emacs的乐趣必然是从装插件开始的。git
与ubuntu等同样,先换个国内的源github
(require 'package) (setq package-archives '(("gnu" . "http://elpa.zilongshanren.com/gnu/") ("melpa" . "http://elpa.zilongshanren.com/melpa/"))) (package-initialize)
好的插件
这里其实因人而异,可是有几个包是全部地方都用的上的。ubuntu
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,能够很方便的跳转与二次搜索。ide
个人配置文件基本上是使用这个的:https://github.com/tuhdo/emac...ui
解决冲突。
装上一大堆插件后,不可避免地遇到了按键冲突。this
global-set-key
: (global-set-key KEY COMMAND)
,例:(global-set-key (kbd "C-c k") 'helm-ag )
spa
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),code
若是自定义了keymap,还须要配合mode (define-minor-mode )
中填写:keymap
参数来使得keymap生效。