Professional Documents
Culture Documents
htm
1 (defun highlight-symbol-settings-for-emaci ()
2 "`highlight-symbol' settings for `emaci'."
3 (eval-when-compile (require 'cl))
4
5 ;;;###autoload
6 (defun emaci-n ()
7 "Command bind to key n."
8 (interactive)
9 (if (edebug-active)
10 (edebug-next-mode)
11 (if (equal major-mode 'gud-mode)
12 (call-interactively 'gud-next)
13 (call-interactively 'highlight-symbol-next))))
14
15 (define-key-list
16 emaci-mode-map
17 `(("p" highlight-symbol-prev))))
1 of 4 2010/6/8 16:51
强大的文件阅读器 - Emaci | Emacs中文网 http://emacser.com/emaci.htm
18
19 (eval-after-load "emaci"
20 `(highlight-symbol-settings-for-emaci))
与vi和view-mode相比最大的差异的地方也是我觉得最方便的地方, 是在emaci-mode下也可以进行
一些编辑工作, 比如你在浏览某个文件的时候, 发现某一行不需要, 直接用C-k删除即可, 然后再
用C-y复制一下刚才拷贝的东西, 当然同样, 可以删除一个区域, 一个单词, 一个字符, 删除字符
还可以用vi中的x命令. 这些编辑操作都不需要你退出emaci-mode, 编辑完之后, 用C-x C-s保存即
可. 只有当你需要敲一堆文字的时候, 因为可能会涉及到jkhl等快捷键, 这时候才需要用q退出
emaci-mode. 这时候你就想了, 那是不是每次编辑之前还要看一下当前是否开了emaci-mode, 那岂
不是非常麻烦? 不用担心, 开启了emaci-mode后, mode-line上会显示一个非常显眼的”Emaci”
样, 我特地用白底红字标示出来, 就像这样:
Emaci的mode-line标记
当然,这个颜色你也可以控制的,该颜色是由颜色变量emaci-mode-line-face来控制的。
而且, 我一般把M-s绑定到了emaci-mode-on, M-S绑定到emaci-mode-off上面, 这样, 你想编辑的
时候按下M-S, 浏览的时候按下M-s, 即使不用看那个白底红字的”Emaci”字样, 也不会出错的.
这点view-mode就不行, 它和其他的minor mode一样, 都是默认的颜色, 我一般开启了好多minor
mode, 这样, 你想编辑的时候, 还得盯着mode-line看半天当前是否打开了view-mode.
1 (defcustom emaci-brief-key-defs
2 `(("h" backward-char)
3 ("l" forward-char)
4 ("j" next-line)
5 ("k" previous-line)
6 ("J" roll-down)
7 ("K" roll-up)
8 ("b" backward-word)
9 ("w" am-forward-word-or-to-word)
10 ("o" other-window)
11 ("G" end-of-buffer)
12 ("a" move-beginning-of-line)
13 ("e" move-end-of-line))
14 "Key pairs used bind in modes `emaci-maps-to-bind-brief-keys'.
15
16 Each element of this variable is two-elements list, and first
2 of 4 2010/6/8 16:51
强大的文件阅读器 - Emaci | Emacs中文网 http://emacser.com/emaci.htm
而待绑定这些快捷键的keymap是由变量emaci-maps-to-bind-brief-keys控制的, 其默认值如下:
?
View Code LISP
1 (defcustom emaci-maps-to-bind-brief-keys
2 `(view-mode-map
3 Man-mode-map
4 apropos-mode-map
5 completion-list-mode-map
6 log-view-mode-map
7 compilation-mode-map
8 diff-mode-map
9 help-mode-map
10 ,(if (>= emacs-major-version 21) 'grep-mode-map)
11 color-theme-mode-map)
12 "List used for `emaci-bind-modes-keys'.
13
14 Element of this list either a list whose first element is load file,
15 and second element is map, or a string which means load file, or a map."
16 :group 'emaci)
此变量是一个keymap的list, list中的元素是keymap或者是nil。
如果你修改了以上两个变量后, 执行一下M-x emaci-bind-brief-keys使你的修改生效.
Emaci的配置文件在这里,配置如下:
?
View Code LISP
3 of 4 2010/6/8 16:51
强大的文件阅读器 - Emaci | Emacs中文网 http://emacser.com/emaci.htm
24
25 (setq emaci-brief-key-defs
26 (append emaci-brief-key-defs
27 `(("]" goto-paren))))
28 (emaci-bind-brief-keys)
29
30 ;;;###autoload
31 (defun switch-major-mode-with-emaci ()
32 "Run `switch-major-mode' with `emaci-mode'."
33 (interactive)
34 (let ((emaci emaci-mode))
35 (call-interactively 'switch-major-mode)
36 (emaci-mode (if emaci 1 -1))))
37
38 (eal-define-keys-commonly
39 global-map
40 `(("C-x q" switch-major-mode-with-emaci))))
41
42 (eval-after-load "emaci"
43 `(emaci-settings))
44
45 (provide 'emaci-settings)
GD Star Rating
loading...
相关日志
4 of 4 2010/6/8 16:51