search;1search Online 3 Money 6search2searcha Www esearchrsearchhsearchs 233622 a Www c Online Money 2search3search2 Tag Tag searcha1search a1Ea Tag yai Easymakingmoneysecret g Easymakingmoneysecret osearche 233622 ssearchc 233622 et 233622 s Online 2 Www 36search2search2 Easymakingmoneysecret nl Www ne Online 3122 Easymakingmoneysecret ac Easymakingmoneysecret eW Money w Easymakingmoneysecret ee Www r Money h Easymakingmoneysecret Easymakingmoneysecret a Tag y Www a1i Online g1o Easymakingmoneysecret e1s Www c Easymakingmoneysecret e Tag Www Www a Online y Www a Easymakingmoneysecret isearchg Www o Www e Online s Easymakingmoneysecret c1esearch
(setq hippie-expand-try-functions-list
    '( ;;senator-complete-symbol
  try-expand-dabbrev
  try-expand-dabbrev-visible
  try-expand-dabbrev-all-buffers
  try-expand-dabbrev-from-kill
  try-complete-file-name-partially
  try-complete-file-name
  try-expand-all-abbrevs
  try-expand-list
  try-expand-line
  try-complete-lisp-symbol-partially
  try-complete-lisp-symbol))


可以看到,hippie-expand 还可以补完文件名(你的本地文件,只要存在),功能
太强大了。

EMACS 还可以跟版本控制结合,比如你编辑一个 CVS 控制的文件,它会自动识别,
在生成相应备份文件的时候也会自动加上版本后缀,不过在 EMACS 使用 CVS 等等
东西我还不大懂,这方面你需要 一下。

EMACS 还可以作为一个编译调试环境。M-x compile,输入编译命令,gcc "your
current edit file name",或是写一个 Makefile,然后将编译命令设成 make,
EMACS 将会调用外部的编译器对文件进行编译,并将结果包括出错信息一并返回
EMACS 的另一个缓冲区,高亮显示出来,如下图所示,你可以点击高亮的出错标志,
EMACS 会将你带到出错的地方。

compiling error
screen.width-461)\">

EMACS 还可以跟 gdb 结合,但是我还没尝试过[3],你可以 一下。但除此
之外,我们可以使用 shell 来运行刚才的程序,其实这也可以在 EMACS 里面进行,
M-x shell,可以打开一个 shell,并可以运行相应的命令[4],其实 EMACS 还提供
了“另外一个“ shell —— eshell,M-x eshell 看看有什么不同。如果你不需要交互
式的运行程序,可以 M-x shell-command,让它在背后异步执行,不过要是返回消
息太多的话,EMACS 还是会多开一个窗口将信息显示出来。

这样,连运行程序都可以在 EMACS 里面进行,我前面说过 EMACS 是个 IDE,这可
一点都不骗人。

下面是我在 EMACS 里面设置的一些方便编译的命令:C-F5,设定编译命令;F5,
运行编译命令;F6,在当前屏幕打开 eshell;C-F6,多开一个窗口打开 eshell。

QUOTE:
 QUOTE

(global-set-key [f5] 'du-onekey-compile)       ; compile
(global-set-key [C-f5] 'compile)    ; set compile command
(global-set-key [(f6)] 'eshell)
(global-set-key [C-f6] 'sucha-open-shell-other-buffer)

;; offered by zslevin in LinuxForum GNU Emacs/XEmacs
(defun du-onekey-compile ()
"Save buffers and start compile"
(interactive)
(save-some-buffers t)
(compile compile-command))

(defun sucha-open-shell-other-buffer ()
"Open shell in other buffer"
(interactive)
(split-window-vertically)
(eshell))


除此之外,EMACS 还有很多方便的使用,比如 M-x SPACE(SPC),设定一个 mark,
然后移动光标将高亮的 region 覆盖到需要重新 indent 或是需要 comment 的地方,
然后 C-M-\ 将代码重新 indent,或是使用命令 M-x comment-region 将 region
comment 掉,或是使用 M-x uncomment-region 将代码还原,非常方便。

还可以用 C-x h 选择缓冲区的全部进行操作,或是一个一个语句(M-a,M-e),
一个一个匹配的括号(C-M-n,C-M-p),一个一个函数地跳转(C-M-a,C-M-e),
很多操作都可以在相应的模式中通过 C-h m 的帮助来获得,我相信,看了上面的介
绍,你会很坚定地放弃鼠标,在这些操作面前,鼠标显得太薄弱了。

想看看在实际的程序员中它们是怎样被使用的,可以访问这里(intel china
employee):
blog/archives/2006_04_01_archive.html


[1] 我虽然说是放到 ~/.emacs 里面去,意思是让 EMACS 启动时可以加载,但是你
  可以将它们重新安排,放到别的文件里,这是上一章所介绍的内容。相关的变
  量可以 C-h v 查看到。
[2] man 一下 etags,可以看到更多的讯息。
[3] 一般很少 debug,唉,还不是一个真正的程序员。
[4] EMACS 应该是直接将命令送入 /bin/sh,所以你在 ~/.bashrc 定义的命令应
  该都没有作用。


*** 使用 EMACS 写作

使用 EMACS 写作也有一些学问,不过我平常不大注意,心得不多。首先将下面的
变量加到你的 ~/.emacs 上面去:

QUOTE:
 QUOTE

(custom-set-variables
...省略
'(fill-column 72)
...省略
)


这将告诉 EMACS 每当到达第 72 栏的时候换行,又是一个省力的办法。在普通的
文本模式里面(text-mode),EMACS 还会根据上下文句子的前缀,决定下一行文
本的前缀,比如:

  前面空三格……一直输入到自动换行

接下来自动换行的时候,EMACS 会自动加上空三格的前缀。有些时候,我们写了一
大段的东西,但是一会儿 kill 一会儿 yank,将版面弄得很乱,这时可以使用按
键 M-q,运行 fill-paragraph,将文本自动对齐[1]。

EMACS 还提供了一个大纲式的编写环境,outline-mode,它可以用不同的颜色高亮
不同级别的标题,还提供一些 shadow 的功能,将内容隐藏,突出标题重点,需要
的时候不妨尝试一下。

EMACS 除了提供普通的编辑方式,它还提供像 那样的编辑环境[2],代表例
子是 emacs-[3] 和 emacs-muse。它们除了支持 的语法,还可以将文章发
表成各种格式,比如 html、docbook 或者是 pdf。我就使用 emacs- 维护自
己的主页,而且还修改了 emacs--journal 建立了一个简单的 blog。相比之
下,muse 的功能似乎更为强大,也更加灵活,现在我使用 muse 建立本地的 ,
将不同的东西组织起来[4],这篇文章就是在 muse 底下写的。

EMACS 还支持 Latex 等文件的编辑,可以提供很多方便的设置,这方面我的经验不
多,需要的话不妨 。

[1] 运行这个函数需要你设置 sentence-end-double-space 为 non-nil,也就是
  不为空。
[2] 说它是 ,是因为确实是 的语法,但是除非特别设置,否则是本地
  单机的写作。
[3] 李宇维护了一个 emacs- 的中文 startup,请浏览他的主页链接
 
webpage/EmacsZh.html
[4] 我在 里面除了组织文本,还连接了一些网站和本地的书籍,对不同的协
  议,EMACS 会调用不同的程序完成任务,比如上网和浏览本地 html,可以用
  emacs-w3m,以后会有介绍


[ 此贴被lalawu_login在2006-05-05 16:31重新编辑 ]




  评论这张
转发至微博
转发至微博
0   分享到:        
阅读(220)| 评论(0)| 引用 (0) |举报
 
 
Emacs 快速指南
 
Emacs-2

历史上的今天

相关文章

最近读者

评论