htm
我的Emacs配置文件 - DEA
1 兼容性
2 安装
3 更新
4 修改
5 目录结构
6 DEA体积
7 注意
8 Emacs默认快捷键修改
9 非常方便的编辑功能
1 兼容性
DEA兼容:
2 安装
linux
?
View Code BASH
安装的时候, 会先根据.emacs文件生成一个.emacs.changed文件,因为.emacs文件中会用到一
些与.emacs文件所在文件夹相关的变量,然后在HOME目录建立一个.emacs.changed的软链接
(ln -sf CURDIR/.emacs.changed ~/.emacs), 如果HOME目录下已经存在.emacs文件,
install.sh会把它备份到~/.emacs.CURRENTDATETIME. 所以, 如果你更新的时候是用svn up更
新的话,还要执行一下 $ install.emacs.sh, 重新生成HOME下的.emacs.另外install.sh还会
解压lisps目录下的压缩包.
windows
windows用户请使用cygwin执行上述安装命令, 或者设置好了HOME目录后,把DEA放到HOME后
1 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
下,并且重命名为emacs,把lisps目录下的tar包都解压,然后新建一个emacs.bat,输入以
下内容:
fullpath-of-runemacs.exe -q -l ~/emacs/.emacs
以后启动Emacs执行emacs.bat即可。
3 更新
?
View Code BASH
1 cd dea-read-only
2 ./
/ update.sh
windows下直接用svn客户端更新即可。
4 修改
5 目录结构
lisps 主要存放一些非Emacs内置的Elisp包
my-lisps 我自己写的Elisp包和其他Elisp包的配置
6 DEA体积
?
View Code BASH
1 ahei@
@ ahei-ubuntu:~/
/ DEA$ du -sh
2 53M .
3 ahei@
@ ahei-ubuntu:~/
/ DEA$ du -sh my-lisps//
4 1016K my-lisps/ /
5 ahei@
@ ahei-ubuntu:~/ / my-lisps$ find -type f | wc -l
/ DEA/
6 185
7 ahei@
@ ahei-ubuntu:~/
/ DEA/
/ my-lisps$ find -type f | xargs wc -l | tail -1
8 13951 total
7 注意
不建议初学者直接使用DEA,初学者请看这里
不要用apt-get安装cedet, DEA里面已自带cedet的cvs版.
其他问题请看DEA的FAQs
8 Emacs默认快捷键修改
由于一些Emacs默认的快捷键个人觉得不是很方便,做了一些修改,主要是:
C-h
Emacs中默认的C-h是帮助快捷键的prefix,我把它绑定到了删除前面一个字符,这样删除字
符就非常方便了。
DEA中查看文档的快捷键如下:
2 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
查看变量和函数的文档
C-x C-/
查看某个快捷键对应的命令
C-x C-k
查看某个命令对应的快捷键
C-x / w
查看当前buffer中以某个快捷键序列开头的快捷键列表
C-x C-d
C-k
Emacs默认的是删除光标当行尾,我改成了删除整行
C-w
Emacs默认的是剪切region,即使mark没有激活, 我改了后,mark没有激活的话,就向后删除
一个单词,激活则剪切region
M-w
Emacs默认的是拷贝region,即使mark没有激活, 我改了后,mark没有激活的话,就复制本
行,激活的话则拷贝region
C-x C-s绑定到了save-buffer-sb
9 非常方便的编辑功能
M-K 删除当前光标到行尾
C-w 在region状态下, 剪切当前region, 否则向后删除一个单词, 非常之方便
C-x M-w 复制一行并粘贴到下一行
M-W 复制region并粘贴到下面
相信很多程序员都有拷贝现成代码并复制下来,然后经过小的修改(当然这种方法不是一个好
的方法), 这时候这个命令就显的非常有用了
C-x w 复制一个sexp
C-x W 删除一个sexp
M-D 删除当前光标所处的单词
C-x S 选择一个sexp
我配置后的emacs截图在http://emacser.com/emacs.htm][这里]](有些截图是别的作者和网友的,
请读者自行分辨, )。
下面是我的.emacs文件, .emacs文件用到的其他文件在这里.
3 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
?
View Code LISP
4 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
56 ;; GUI下显示toolbar的话select-buffer会出问题
57 (if (fboundp 'tool-bar-mode)
58 (tool-bar-mode -1))
59
60 ;; 打开压缩文件时自动解压缩
61 ;; 必须放在session前面
62 (auto-compression-mode 1)
63
64 ;; 所有关于buffer方面的配置
65 (require 'all-buffer-settings)
66
67 ;; frame-cmds.el必须放在multi-term前面,否则ediff退出时会出现错误
68 ;; 而icicles soft-requires frame-cmds.el, 所以icicles也必须放在multi-term前面
69 ;; emacs22下也必须放在kde-emacs前面, 否则会说shell-command是void-function
70 ;; http://emacser.com/icicles-doremi-palette.htm
71 (require 'icicles-settings)
72 (require 'doremi-settings)
73 (require 'palette-settings)
74
75 ;; edit-settings中对M-w重新定义,但是kde-emacs中也对其定义了
76 ;; 所以必须要放在kde-emacs后面
77 (require 'edit-settings)
78
79 ;; 用M-x执行某个命令的时候,在输入的同时给出可选的命令名提示
80 (require 'icomplete-settings)
81
82 ;; minibuffer中输入部分命令就可以使用补全
83 (unless is-after-emacs-23
84 (partial-completion-mode 1))
85
86 ;; 图片mode
87 (require 'image-mode-settings)
88
89 ;; 用一个很大的kill ring. 这样防止我不小心删掉重要的东西
90 (setq kill-ring-max 200)
91
92 ;; 方便的在kill-ring里寻找需要的东西
93 (require 'browse-kill-ring-settings)
94
95 ;; 显示行号
96 (require 'linum-settings)
97
98 ;; color theme Emacs主题
99 (require 'color-theme-settings)
100
101 (require 'ahei-face)
102 (require 'color-theme-ahei)
103 (require 'face-settings)
104
105 ;; 高亮当前行
106 (require 'hl-line-settings)
107
108 (when (and window-system is-after-emacs-23)
109 (require 'my-fontset-win)
110 (if mswin
111 (huangq-fontset-courier 17)
112 ;; (huangq-fontset-dejavu 17)))
5 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
6 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
7 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
8 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
284
285 ;; 返回到最近去过的地方
286 (require 'recent-jump-settings)
287
288 ;; 统计命令使用频率
289 (require 'command-frequence)
290
291 ;; Emacs中的文本浏览器w3m
292 ;; http://emacser.com/w3m.htm
293 (require 'w3m-settings)
294
295 ;; 以另一用户编辑文件, 或者编辑远程主机文件
296 (require 'tramp-settings)
297
298 ;; erc: Emacs中的IRC
299 ;; ERC使用简介 emacser.com/erc.htm
300 (require 'erc-settings)
301
302 ;; spell check
303 (setq-default ispell-program-name "aspell")
304
305 (define-key global-map (kbd "C-q") 'quoted-insert-sb)
306
307 ;; Emacs中的包管理器
308 (require 'package)
309 (package-initialize)
310
311 (require 'auto-install)
312 (setq auto-install-directory (concat my-emacs-lisps-path "auto-install"))
313
314 (unless mswin
315 (defun install-.emacs ()
316 (interactive)
317 (shell-command (concat my-emacs-path "install.emacs.sh")))
318
319 (add-hook 'kill-emacs-hook 'install-.emacs))
320
321 ;; 把pdf,ps,dvi文件转换为png格式, 在Emacs里面浏览
322 (if is-after-emacs-23
323 (require 'doc-view)
324 (setq doc-view-conversion-refresh-interval 3))
325
326 ;; 在Emacs里面使用shell
327 (require 'term-settings)
328 (require 'multi-term-settings)
329
330 (require 'anything-settings)
331
332 (require 'ioccur)
333
334 ;; 查询天气预报
335 (require 'weather-settings)
336
337 ;; 可以把光标由方块变成一个小长条
338 (require 'bar-cursor)
339
340 (defun goto-my-emacs-lisps-dir ()
9 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
10 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
GD Star Rating
loading...
标签:ahei, autoload, CEDET, cursor, cursor-change, doremi, ede, ediff, emaci, Emacs,
emacser, emacser.com, erc, eval-after-load, face, highlight, highlight-tail, icicle,
icicles, IDE, irc, lambda, mode-line, org, palette, scratch, screenshot, select-
buffer, semantic, term, theme, ubuntu, weblogger, windows, 光标, 截图, 浏览器, 王纯业,
看文档, 行号, 补全, 配色, 配色, 颜色, 鼠标
11 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
相关日志
Emacs长啥样 (0)
“色向胆边生” - 记Emacs配色的超级武器:Icicles,Color Palette和DoReMi (12)
用CEDET浏览和编辑C++代码 (93)
Emacs才是世界上最强大的IDE - 用Emaci阅读文件 (74)
Emacs才是世界上最强的IDE - 高亮光标处单词 (17)
1.
eric
2010年5月4日13:50 | #1
回复 | 引用
@eric
哦,搞清楚了,loading的时候说Outdated speedbar 1.0 shadowed to meet minimum
version 1.0.3
然后我把.emacs 里面的cedet那一句注释掉了,后面的东西就能loading了,但如果不注释应
该怎么解决啊?
[回复]
ahei 回复:
五月 4th, 2010 at 2:07 下午
@eric, 用最新版23吧.
[回复]
eric 回复:
五月 4th, 2010 at 2:24 下午
@ahei,
在另外一个目录装了个23,把HOME还是设在原来的那个22HOME,用的还是D:/Emacs/.emacs
出现了error: Install w3m command in `exec-path’ or set `w3m-command’ variable
correctly
不过用ahei你的这个配置让我对emacs有了更多的兴趣,再赞一下回帖速度,我看到了一个优
秀水车的素质!
[回复]
ahei 回复:
五月 4th, 2010 at 2:35 下午
12 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
windows用户请使用cygwin执行上述安装命令, 或者设置好了HOME目录后,把DEA放到HOME后
下,并且重命名为emacs,把lisps目录下的tar包都解压,然后新建一个emacs.bat,输入以
下内容:
不需要你把DEA中的.emacs拷到你的HOME下,建个bat比较好点,呵呵
[回复]
eric 回复:
五月 4th, 2010 at 3:01 下午
[回复]
ahei 回复:
五月 4th, 2010 at 3:05 下午
[回复]
2.
SamPeng
2010年5月4日17:12 | #2
回复 | 引用
两个问题:1-
WARNING from msf-abbrev.el: no abbrev table LaTeX-mode-abbrev-table and no hook
LaTeX-mode-hook, abbrevs for mode LaTeX-mode will not be loaded
WARNING from msf-abbrev.el: no abbrev table TeX-mode-abbrev-table and no hook
TeX-mode-hook, abbrevs for mode TeX-mode will not be loaded
WARNING from msf-abbrev.el: no abbrev table conf-javaprop-mode-abbrev-table and
no hook conf-javaprop-mode-hook, abbrevs for mode conf-javaprop-mode will not be
loaded
WARNING from msf-abbrev.el: no abbrev table cperl-mode-abbrev-table and no hook
cperl-mode-hook, abbrevs for mode cperl-mode will not be loaded
WARNING from msf-abbrev.el: no abbrev table fortran-mode-abbrev-table and no hook
fortran-mode-hook, abbrevs for mode fortran-mode will not be loaded
WARNING from msf-abbrev.el: no abbrev table inferior-python-mode-abbrev-table and
no hook inferior-python-mode-hook, abbrevs for mode inferior-python-mode will not
be loaded
WARNING from msf-abbrev.el: no abbrev table jde-mode-abbrev-table and no hook
jde-mode-hook, abbrevs for mode jde-mode will not be loaded
WARNING from msf-abbrev.el: no abbrev table message-mode-abbrev-table and no hook
message-mode-hook, abbrevs for mode message-mode will not be loaded
WARNING from msf-abbrev.el: no abbrev table perl-mode-abbrev-table and no hook
perl-mode-hook, abbrevs for mode perl-mode will not be loaded
WARNING from msf-abbrev.el: no abbrev table shell-mode-abbrev-table and no hook
shell-mode-hook, abbrevs for mode shell-mode will not be loaded
2-如何让 输入的每一行不要有下划线。。你这个风格我实在不习惯。看得眼花:)
3-基本设置在哪?比如说emacs得color插件得设置。您得包太大了。。真不好找
13 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
[回复]
ahei 回复:
五月 6th, 2010 at 3:00 上午
1和2请看DEA的FAQs
3. face-settings.el
[回复]
3.
SamPeng
2010年5月5日13:50 | #3
回复 | 引用
用了一晚上。觉得特别棒!哈哈。谢谢大个你得无私贡献。只是我有几个问题
yas插件我看到启用了。快捷键盘是什么?没找到啊没找到
补全确实很强大,但我个人不习惯完全得输入后就补全。影响思路。用得时候再补全会好很
多。也就是用tab来补全。。。
[回复]
SamPeng 回复:
五月 5th, 2010 at 4:30 下午
@SamPeng, 而且补全时有时没有。。这让我很郁闷
[回复]
ahei 回复:
五月 6th, 2010 at 2:11 上午
怎么会呢?是有的时候没有补全吧?最近我升级了auto-complete,有时候用着用着出现错
误,auto-complete自动关闭,等我有空查查
[回复]
ahei 回复:
五月 6th, 2010 at 1:53 上午
1. yas的设置在yasnippet-settings里面,我没有改过的快捷键就是默认的,可以看
yasnippet的文档
2. 但我个人不习惯完全得输入后就补全。影响思路。用得时候再补全会好很多。也就是用
tab来补全。。。 ?? 什么意思?你前面说不习惯等完全输入后补全,后面又说用的时候用
tab来补全比较好
[回复]
14 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
SamPeng 回复:
五月 6th, 2010 at 2:03 上午
1. 如果你不喜欢弹出补全列表的话,注释掉(require ‘auto-complete-settings)就可以了
2. 回到上一次修改的位置,这个功能我好像见过,不记得了,你到水木上问问
3. ;; 以前最烦的就是emacs好难区域选择(可能是不习惯这种方式,vim的V视图模式多方
便:) )
加了我的mark-settings应该就方便多了
4. ;; 我把emacsi模式关掉了。。不会影响其他的吧?因为影响我编辑代码。。。总觉得怪
怪的
呵呵,多多体验一下emaci吧,非常好用的
5. ;; 在本行之下插入一行快捷键用么?c-e然后回车。。。好麻烦啊
M-x emaci-newline-and-quit, 在emaci下用O就可以了
[回复]
ahei 回复:
五月 6th, 2010 at 3:12 上午
我晕,我竟然把你的评论直接修改了,真是不好意思,不能还原了。
1. 如果你不喜欢弹出补全列表的话,注释掉(require ‘auto-complete-settings)就可以了
2. 回到上一次修改的位置,这个功能我好像见过,不记得了,你到水木上问问
3. ;; 以前最烦的就是emacs好难区域选择(可能是不习惯这种方式,vim的V视图模式多方
便:) )
加了我的mark-settings应该就方便多了
4. ;; 我把emacsi模式关掉了。。不会影响其他的吧?因为影响我编辑代码。。。总觉得怪
怪的
呵呵,多多体验一下emaci吧,非常好用的
5. ;; 在本行之下插入一行快捷键用么?c-e然后回车。。。好麻烦啊
M-x emaci-newline-and-quit, 在emaci下用O就可以了
[回复]
SamPeng 回复:
五月 6th, 2010 at 3:56 上午
[回复]
SamPeng 回复:
五月 6th, 2010 at 4:07 上午
@SamPeng, 可能是我没说正确。弹出补全很棒。只是不喜欢每输入一个字符就补全。而
且。。我这边很奇怪。有时候可以,有时候补全就完全没了。要重启emacs才行。。我的环境
是完全重新装的ubuntu+emacs23。。应该不是我环境问题。
15 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
[回复]
ahei 回复:
五月 6th, 2010 at 5:07 上午
[回复]
ahei 回复:
五月 6th, 2010 at 5:06 上午
@SamPeng, 注释掉了就用yasnippet阿
[回复]
SamPeng 回复:
五月 6th, 2010 at 3:21 下午
@ahei, 没注释调。看了一下手册。。还好英文我马马虎虎能看得董
。。
加两段设置就行了。。
我发现。。前面补全得时候好好得。。只是突然auto-complete-mode 被关闭了。。这比较郁
闷
问题在哪呢?
[回复]
ahei 回复:
五月 6th, 2010 at 3:23 下午
[回复]
SamPeng 回复:
五月 6th, 2010 at 3:25 下午
@SamPeng,
把你设置得
(global-auto-complete-mode 1)
换成这段设置
16 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
(define-globalized-minor-mode real-global-auto-complete-mode
auto-complete-mode (lambda ()
(if (not (minibufferp (current-buffer)))
(auto-complete-mode 1))
))
(real-global-auto-complete-mode t)
貌似这样就每问题了
[回复]
ahei 回复:
五月 6th, 2010 at 3:31 下午
1 (defun auto-complete-mode-maybe ()
2 "What buffer `auto-complete-mode' prefers."
3 (if (and (not (minibufferp (current-buffer)))
4 (memq major-mode ac-modes))
5 (auto-complete-mode 1)))
6
7 (define-global-minor-mode global-auto-complete-mode
8 auto-complete-mode auto-complete-mode-maybe
9 :group 'auto-complete)
[回复]
SamPeng 回复:
五月 6th, 2010 at 3:36 下午
@ahei,
啊。。你这样说我明白。。。那如何修改呢?
需要得时候突然auto-complete-mode关闭了。。这个比较恼火。。
越看大哥你得emacs配置越舒服阿。。。每天解决一个大块。。学习到不少东西:)
[回复]
ahei 回复:
五月 6th, 2010 at 3:37 下午
@SamPeng, …我说了我有空的时候会看看这个bug的,最近比较忙
SamPeng 回复:
17 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
@SamPeng, 那就先这样将就着。。电脑还算可以。
不担心这点性能。麻烦你了
4.
SamPeng
2010年5月5日14:43 | #4
回复 | 引用
应该是哪里重复定义了。。找不到找不到
[回复]
ahei 回复:
五月 6th, 2010 at 1:53 上午
这个我也不清楚,我有空查查
[回复]
5.
匿名
2010年5月14日02:55 | #5
回复 | 引用
你那个命令补全M-x:
是用哪个插件做的啊?
[回复]
ahei 回复:
五月 14th, 2010 at 3:35 上午
@, Emacs内置的, 在simple.el里面
[回复]
匿名 回复:
五月 14th, 2010 at 4:36 上午
18 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
@ahei, 我是说那个自动提示,不用按TAB
[回复]
ahei 回复:
五月 14th, 2010 at 4:41 上午
@, 那个是auto-complete,那你后面的那个”M-x:”是啥阿?
[回复]
匿名 回复:
五月 14th, 2010 at 5:10 上午
@ahei, 不是那个,是Alt+x,里面输入命令的自动补全,
我不想要按TAB跳出个烦人的buffer
[回复]
ahei 回复:
五月 14th, 2010 at 5:11 上午
@, 看我上面说的auto-complete就行了。
[回复]
匿名 回复:
五月 14th, 2010 at 7:02 上午
@ahei, 我还是不知道怎么弄,望指点,我是新手
[回复]
ahei 回复:
五月 14th, 2010 at 7:04 上午
看这篇文章:http://emacser.com/auto-complete.htm
[回复]
6.
Jason
2010年5月14日06:34 | #6
回复 | 引用
19 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
[回复]
ahei 回复:
五月 14th, 2010 at 6:56 上午
[回复]
Jason 回复:
五月 19th, 2010 at 10:40 上午
[回复]
Jason 回复:
五月 19th, 2010 at 11:16 上午
[回复]
ahei 回复:
五月 19th, 2010 at 11:26 上午
[回复]
ahei 回复:
五月 19th, 2010 at 11:29 上午
[回复]
7.
大头阿当
20 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm
2010年5月23日04:35 | #7
回复 | 引用
“初学者不建议直接使用DEA…”句中的链接有误,请检查。
[回复]
ahei 回复:
五月 23rd, 2010 at 6:54 上午
[回复]
1. 2010年5月9日07:41 | #1
GNU Emacs 23.2发布 | Emacs中文网
21 of 21 2010/6/8 16:43