Anda di halaman 1dari 21

Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.

htm

我的Emacs配置文件 - DEA

DEA是Dot Emacs of Ahei的简写。由于我的emacs配置文件比较大,我把它放到google code上去


了,详情请见:DEA。我会不定期发布release版本,不过你大可放心使用trunk版本,我更新的很
及时,遇到bug正好告诉我,:)。其他文章中的配置均来之与此。

1 兼容性
2 安装
3 更新
4 修改
5 目录结构
6 DEA体积
7 注意
8 Emacs默认快捷键修改
9 非常方便的编辑功能

1 兼容性

DEA兼容:

部分兼容Emacs 21(以前兼容,我现在不使用Emacs 21了,所以可能有不兼容的情况)


Emacs 22, 23.1, 23.2
Emacs linux版本(我在Ubuntu下使用Emacs)
Emacs windows版本
Emacs GUI版本
Emacs字符模式版本

2 安装

linux
?
View Code BASH

1 apt-get install gnuserv # (emacs 21及其以下版本需要安装)


2 svn checkout http://
//dea.googlecode.com/
// / svn/ / dea-read-only # (或者下载Downloads页
/ trunk/
3 cd dea-read-only
4 ./
/ install.sh

安装的时候, 会先根据.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 修改

修改完.emacs后需要运行 $ ./install.emacs.sh, 或者退出emacs的时候,会自动运行$


./install.emacs.sh

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 /,比如你想查看当前buffer中所有以C-c开头的快捷键列


表,按C-c C-x /就可以了。
查看函数和变量的代码

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-w smart-copy region状态下,拷贝region,否则拷贝当前行, 还可以拷贝矩阵region


C-k 删除一行

M-K 删除当前光标到行尾
C-w 在region状态下, 剪切当前region, 否则向后删除一个单词, 非常之方便
C-x M-w 复制一行并粘贴到下一行

M-W 复制region并粘贴到下面

C-x M-W 复制一个sexp并粘贴到下面

相信很多程序员都有拷贝现成代码并复制下来,然后经过小的修改(当然这种方法不是一个好
的方法), 这时候这个命令就显的非常有用了
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

1 ;; -*- Emacs-Lisp -*-


2
3 ;; Time-stamp: <2010-05-06 10:18:12 Thursday by ahei>
4
5 (defconst my-emacs-path "~/emacs/" "我的emacs相关配置文件的路径")
6 (defconst my-emacs-my-lisps-path (concat my-emacs-path "my-lisps/") "我自己写的emacs lis
7 (defconst my-emacs-lisps-path (concat my-emacs-path "lisps/") "我下载的emacs lisp包的
8 (defconst my-emacs-templates-path (concat my-emacs-path "templates/") "Path for templates
9
10 ;; 把`my-emacs-lisps-path'的所有子目录都加到`load-path'里面
11 (load (concat my-emacs-my-lisps-path "my-subdirs"))
12 (my-add-subdirs-to-load-path my-emacs-lisps-path)
13 (my-add-subdirs-to-load-path my-emacs-my-lisps-path)
14
15 ;; 一些基本的小函数
16 (require 'ahei-misc)
17
18 ;; 利用`eval-after-load'加快启动速度的库
19 ;; 用eval-after-load避免不必要的elisp包的加载
20 ;; http://emacser.com/eval-after-load.htm
21 (require 'eval-after-load)
22
23 (require 'util)
24
25 ;; 一些Emacs的小设置
26 (require 'misc-settings)
27
28 ;; 编码设置
29 (require 'coding-settings)
30
31 ;; CUA的矩阵区域操作特别方便
32 (require 'cua-settings)
33
34 ;; 矩形区域操作
35 (require 'rect-mark-settings)
36
37 ;; 鼠标配置
38 (require 'mouse-settings)
39
40 ;; 关于mark的一些设置,使你非常方便的选择region
41 (require 'mark-settings)
42
43 ;; `mode-line'显示格式
44 (require 'mode-line-settings)
45
46 ;; ffap,打开当前point的文件
47 (require 'ffap-settings)
48
49 ;; 各种语言开发方面的设置
50 (require 'dev-settings)
51
52 ;; 不要menu-bar和tool-bar
53 ;; (unless window-system
54 ;; (menu-bar-mode -1))
55 (menu-bar-mode -1)

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

113 (huangq-fontset-fixedsys 17)))


114
115 ;; diff
116 (require 'diff-settings)
117
118 ;; ediff
119 (require 'ediff-settings)
120
121 ;; 最近打开的文件
122 (require 'recentf-settings)
123
124 ;; color-moccur
125 (require 'moccur-settings)
126
127 ;; Emacs超强的增量搜索Isearch配置
128 (require 'isearch-settings)
129
130 ;; 非常酷的一个扩展。可以“所见即所得”的编辑一个文本模式的表格
131 (if is-before-emacs-21 (require 'table "table-for-21"))
132
133 ;; 把文件或buffer彩色输出成html
134 (require 'htmlize)
135
136 ;; time-stamp, 在文件头记录修改时间
137 (require 'time-stamp-settings)
138
139 ;; Emacs可以做为一个server, 然后用emacsclient连接这个server,
140 ;; 无需再打开两个Emacs
141 (require 'emacs-server-settings)
142
143 (require 'apropos-settings)
144 (require 'completion-list-mode-settings)
145
146 ;; 显示ascii表
147 (require 'ascii)
148
149 ;; 所有关于查看帮助方面的配置
150 (require 'all-help-settings)
151
152 ;; 定义一些emacs 21没有的函数
153 (if is-before-emacs-21 (require 'for-emacs-21))
154
155 ;; 简写模式
156 (setq-default abbrev-mode t)
157 (setq save-abbrevs nil)
158
159 ;; 可以为重名的buffer在前面加上其父目录的名字来让buffer的名字区分开来,而不是单纯的加一个
160 (require 'uniquify)
161 (setq uniquify-buffer-name-style 'forward)
162
163 ;; 以目录形式显示linkd文档
164 (require 'linkd-settings)
165
166 ;; Emacs的超强文件管理器
167 (require 'dired-settings)
168
169 ;; 方便的切换major mode

6 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm

170 (defvar switch-major-mode-last-mode nil)


171
172 (defun major-mode-heuristic (symbol)
173 (and (fboundp symbol)
174 (string-match ".*-mode$" (symbol-name symbol))))
175
176 (defun switch-major-mode (mode)
177 "切换major mode"
178 (interactive
179 (let ((fn switch-major-mode-last-mode) val)
180 (setq val
181 (completing-read
182 (if fn (format "切换major-mode为(缺省为%s): " fn) "切换major mode为: ")
183 obarray 'major-mode-heuristic t nil nil (symbol-name fn)))
184 (list (intern val))))
185 (let ((last-mode major-mode))
186 (funcall mode)
187 (setq switch-major-mode-last-mode last-mode)))
188 (global-set-key (kbd "C-x q") 'switch-major-mode)
189
190 (defun get-mode-name ()
191 "显示`major-mode'及`mode-name'"
192 (interactive)
193 (message "major-mode为%s, mode-name为%s" major-mode mode-name))
194 (global-set-key (kbd "C-x m") 'get-mode-name)
195
196 ;; 查看Emacs内进程
197 (autoload 'list-processes+ "list-processes+" "增强的`list-processes'命令" t)
198
199 (require 'view-mode-settings)
200
201 (defun revert-buffer-no-confirm ()
202 "执行`revert-buffer'时不需要确认"
203 (interactive)
204 (when (buffer-file-name)
205 (let ((emaci emaci-mode))
206 (revert-buffer buffer-file-name t)
207 (emaci-mode (if emaci 1 -1)))))
208 (global-set-key (kbd "C-x u") 'revert-buffer-no-confirm)
209
210 (defun count-brf-lines (&optional is-fun)
211 "显示当前buffer或region或函数的行数和字符数"
212 (interactive "P")
213 (let (min max)
214 (if is-fun
215 (save-excursion
216 (beginning-of-defun) (setq min (point))
217 (end-of-defun) (setq max (point))
218 (message "当前函数%s内共有%d行, %d个字符" (which-function) (count-lines min
219 (if mark-active
220 (progn
221 (setq min (min (point) (mark)))
222 (setq max (max (point) (mark))))
223 (setq min (point-min))
224 (setq max (point-max)))
225 (if (or (= 1 (point-min)) mark-active)
226 (if mark-active

7 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm

227 (message "当前region内共有%d行, %d个字符" (count-lines min max) (- max


228 (message "当前buffer内共有%d行, %d个字符" (count-lines min max) (- max
229 (let ((nmin min) (nmax max))
230 (save-excursion
231 (save-restriction
232 (widen)
233 (setq min (point-min))
234 (setq max (point-max))))
235 (message "narrow下buffer内共有%d行, %d个字符, 非narrow下buffer内共有%d行, %d个字
236 (count-lines nmin nmax) (- nmax nmin) (count-lines min max) (- max
237 (eal-define-keys-commonly
238 global-map
239 `(("C-x l" count-brf-lines)
240 ("C-x L" (lambda () (interactive) (count-brf-lines t)))))
241
242 ;; 增加更丰富的高亮
243 (require 'generic-x)
244
245 (defun switch-to-scratch ()
246 "切换到*scratch*"
247 (interactive)
248 (let ((buffer (get-buffer-create "*scratch*")))
249 (switch-to-buffer buffer)
250 (unless (equal major-mode 'lisp-interaction-mode)
251 (lisp-interaction-mode))))
252 (global-set-key (kbd "C-x s") 'switch-to-scratch)
253
254 (defun visit-.emacs ()
255 "访问.emacs文件"
256 (interactive)
257 (find-file (concat my-emacs-path ".emacs")))
258 (global-set-key (kbd "C-x E") 'visit-.emacs)
259
260 ;; grep
261 (require 'grep-settings)
262
263 ;; ack-grep, grep纯perl的代替品
264 (require 'full-ack-settings)
265
266 ;; 可以显示空白,tab
267 (require 'blank-mode)
268
269 (eal-define-keys-commonly
270 global-map
271 `(("M-r" query-replace-sb)
272 ("M-%" query-replace-sb)
273 ("ESC M-%" query-replace-regexp-sb)
274 ("ESC M-r" query-replace-regexp-sb)
275 ("C-x M-r" query-replace-regexp-sb)
276 ("M-z" zap-to-char-sb)
277 ("C-j" goto-line)
278 ("C-x C-s" save-buffer-sb)))
279
280 (am-add-hooks
281 `(find-file-hook)
282 (lambda ()
283 (local-set-key (kbd "C-M-j") 'goto-line)))

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

341 "Goto `my-emacs-lisps-path'."


342 (interactive)
343 (dired my-emacs-lisps-path))
344 (defun goto-my-emacs-my-lisps-dir ()
345 "Goto `my-emacs-my-lisps-path'."
346 (interactive)
347 (dired my-emacs-my-lisps-path))
348 (defun goto-my-emacs-dir ()
349 "Goto `my-emacs-path'."
350 (interactive)
351 (dired my-emacs-path))
352 (defun goto-my-home-dir ()
353 "Goto my home directory."
354 (interactive)
355 (dired "~"))
356 (define-key-list
357 global-map
358 `(("C-x G l" goto-my-emacs-lisps-dir)
359 ("C-x G m" goto-my-emacs-my-lisps-dir)
360 ("C-x G e" goto-my-emacs-dir)
361 ("C-x M-H" goto-my-home-dir)))
362
363 (define-key global-map (kbd "C-x M-c") 'describe-char)
364
365 ;; 启动Emacs的时候最大化Emacs
366 (require 'maxframe-settings)
367
368 (apply-args-list-to-fun
369 `def-execute-command-on-current-file-command
370 `("dos2unix" "unix2dos"))
371 (define-key global-map (kbd "C-x M-D") 'dos2unix-current-file)
372
373 (define-key-list
374 global-map
375 `(("C-x M-k" Info-goto-emacs-key-command-node)
376 ("C-x ESC ESC" repeat-complex-command-sb)))
377
378 ;; Emacs才是世界上最强大的IDE - 智能的改变光标形状
379 ;; http://emacser.com/cursor-change.htm
380 (require 'cursor-change)
381 (cursor-change-mode 1)
382
383 (defun copy-file-name (&optional full)
384 "Copy file name of current-buffer.
385 If FULL is t, copy full file name."
386 (interactive "P")
387 (let ((file (buffer-name)))
388 (if full
389 (setq file (expand-file-name file)))
390 (kill-new file)
391 (message "File `%s' copied." file)))
392 (eal-define-keys
393 `(emacs-lisp-mode-map lisp-interaction-mode-map java-mode-map sh-mode-map
394 c-mode-base-map text-mode-map ruby-mode-map html-mode-map
395 java-mode-map conf-javaprop-mode-map)
396 `(("C-c M-C" copy-file-name)))
397

10 of 21 2010/6/8 16:43
Emacs配置文件 - DEA | Emacs中文网 http://emacser.com/dea.htm

398 ;; notification tool


399 (require 'todochiku-settings)
400
401 ;; twitter client
402 (require 'eagle-settings)
403 (require 'twit-settings)
404
405 ;; 模拟vi的点(.)命令
406 (require 'dot-mode)
407
408 ;; 用渐变颜色显示你最近的修改
409 ;; http://emacser.com/highlight-tail.htm
410 ;; 与semantic冲突,启动了它后,打开大文件的时候,会发现buffer大范围的刷屏
411 ;; (require 'highlight-tail-settings)
412
413 ;; Emacs才是世界上最强大的IDE - 用Emaci阅读文件
414 ;; http://emacser.com/emaci.htm
415 (require 'emaci-settings)
416
417 ;;;###autoload
418 (defun update-current-file-autoloads (file &optional save-after)
419 "`update-file-autoloads' for current file."
420 (interactive "fUpdate autoloads for file: \np")
\n
421 (let* ((load-file (expand-file-name "loaddefs.el"))
422 (generated-autoload-file load-file))
423 (unless (file-exists-p load-file)
424 (shell-command (concat "touch " load-file)))
425 (update-file-autoloads file save-after)))
426
427 ;; org是一个非常强大的GTD工具
428 (require 'org-settings)
429
430 ;; 用weblogger写WordPress博客
431 ;; http://emacser.com/weblogger.htm
432 (require 'weblogger-settings)
433
434 ;; session,可以保存很多东西,例如输入历史(像搜索、打开文件等的输入)、
435 ;; register的内容、buffer的local variables以及kill-ring和最近修改的文件列表等。非常有用。
436 (require 'session-settings)
437
438 ;; 王纯业的desktop, 比desktop快多了
439 (require 'wcy-desktop-settings)
440
441 ;; HACK: 要放在最后,免得会出现比较奇怪的现象
442 ;; 保存和恢复工作环境
443 ;; desktop,用来保存Emacs的桌面环境 — buffers、以及buffer的文件名、major modes和位置等等
444 ;; (require 'desktop-settings)
445
446 (sb-update)

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)

分类: DEA, 中级, 配置


评论 (17) Trackbacks (1) 发表评论 Trackback

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 下午

@eric, 应该是没有w3m的原因, 最好装一下cygwin,因为Emacs会用到一些linux下的程序.另



文中的Windows下安装DEA的步骤如下:

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, 好的!但奇怪的是,我用22的时候是可以用w3m上网的!而且我把load ”w3m-


settings“注释了依然出现以上错误……

[回复]

ahei 回复:
五月 4th, 2010 at 3:05 下午

@eric, …不知道了, 你用二分调试法调试看看哪的问题.

[回复]

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 上午

@ahei, 如果注释掉(require ‘auto-complete-settings)。那补全还会有么?tab补全?

[回复]

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 上午

@SamPeng, 那你配置一下auto complete就可以了,具体你看它的文档。如果你用我的auto


complete配置的话,可能会出现你说的现象的,是我的配置问题,我有空再看看

[回复]

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, 我前面不是说过了吗,我auto complete升级了,但是配置有的还是老的,会产生错


误,auto complete自动退出

[回复]

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 下午

你这样就让所有mode都开启auto complete了,ac本来是只让ac-modes中的mode开启ac mode


的:
?
View Code LISP

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

五月 6th, 2010 at 4:42 下午

@SamPeng, 那就先这样将就着。。电脑还算可以。
不担心这点性能。麻烦你了

4.
SamPeng
2010年5月5日14:43 | #4
回复 | 引用

ad-handle-definition: `ibuffer-do-occur’ got redefined [2 times]


ad-handle-definition: `moccur-quit’ got redefined
ad-handle-definition: `moccur-mode’ got redefined
ad-handle-definition: `moccur-grep-mode’ got redefined
ad-handle-definition: `moccur-quit’ got redefined
ad-handle-definition: `moccur-mode’ got redefined
ad-handle-definition: `moccur-grep-mode’ got redefined

应该是哪里重复定义了。。找不到找不到

[回复]

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

dea M-K 删除当前光标到行尾 有问题啊? 怎么整个函数体都删除?

[回复]

ahei 回复:
五月 14th, 2010 at 6:56 上午

@Jason, 不会吧?你C-x C-k M-K,看看它执行的是啥命令

[回复]

Jason 回复:
五月 19th, 2010 at 10:40 上午

@ahei, kill hole paragram 哈哈 就是删除整段

[回复]

Jason 回复:
五月 19th, 2010 at 11:16 上午

@Jason, 找到了 我改过来了 大小写改了下 符合习惯 哈哈 不过还存在个问题 那就是好多


时候不能输入 u o n 等字符 跟帮定了一些命令似的,windows下没问题的 ubuntu linux下
反而有问题了

[回复]

ahei 回复:
五月 19th, 2010 at 11:26 上午

@Jason, see article Emacs才是世界上最强大的IDE - 用Emaci阅读文件

[回复]

ahei 回复:
五月 19th, 2010 at 11:29 上午

@Jason, 不会吧,你用的不是完整的DEA吧, 有你自己的配置在里面吧, 你试试完整的DEA, M-


K就是执行的kill-line的

[回复]

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

Anda mungkin juga menyukai