emacs按键绑定

emacs按键绑定有以下几种方法:

1.

(global-set-key "\M-;" 'qiang-comment-dwim-line)

2.

(dolist (hook '(text-mode-hook org-mode-hook))
 
(add-hook hook
           
(lambda ()
             
(flyspell-mode 1)
             
(local-set-key (kbd "C-c C-v") flyspell-goto-next-error))))

3.

(define-key c-mode-base-map (kbd "M-n") 'semantic-ia-complete-symbol-menu)

(define-key ecb-mode-map "\C-c1" 'ecb-maximize-window-directories)

一般在emacs中绑定按键都使用 global-set-key,但是,很多时候某一个按键只在某种mode中才有意义,这时候我们应该避免污染全局按键设置,使用local-set-key。 某些minor-mode,比如auto-fill-mode、outline-minor-mode,我们希望它们只在某种mode中打开,这时候如果 鲁莽的全局打开这些minor-mode也不是很合适。所以,应该习惯于使用 mode-hook 来针对不同mode进行个性化的设置。

例如,第2种方案,我只在text-mode和org-mode里打开flyspell的功能,并且绑定了C-c C-v按键,这里用到了 dolist 函数来遍历需要设置的mode:

第3种方案使用的是map模式,也是局部按键设置