要充分享受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生效。