文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>我为什么不能离开Emacs

我为什么不能离开Emacs

时间:2006-05-24  来源:naihe2010

我现在不能离开Emacs。每天,我的电脑打开,默认加载好Emacs。我进入Emacs,X-x把Shell调出来,然后打开源码文件,开始编程。

     具体说来,Emacs可以做的事情太多了。我用它编源码、FTP上传下载、运行Shell(在Emacs中调用的Shell更好用)、调试源码。

     当然,我主要还是用它的编辑功能。毕竟Emacs本来就是一款编辑器嘛,只是比别的编辑器更好用一些、更强大一些,所以我用的最主要的就是它的编辑功能, 用它编各种语言的源文件。因为它能根据各种语言的不同,对语言的格式进行调整,对该语言的快捷编辑(估且这么叫它们吧)也不同,我可以自由、快速地编辑各 种程序源文件,不会感到力不从心。

    Emacs对于每一个打开的文件,都只是打开一个和实际文件一模一样的缓冲区(Buffer),而不是真的打开那个文件。所以,无论你对自己的文件怎样更 改,什么删除啊、替换啊、增加啊,你都永远不用担心会把原来的文件搞坏了。只有当你执行保存命令后,你做的更改才会真正的写到文件中。即便这时, Emacs也不会让你担心损失文件,因为这时它也会把原文件做个备份,把文件名后面加个~保存到当前目录中。只有结束编辑,看到目录中的不少带~结尾的文 件时,你能保证所做的更改没问题,这些文件没用了。如果你不想留着它们,才将它们删除。

     网上关于Emacs使用方法的介绍,实在是太多了。我再详细的列举,真的是没什么意思。索性,把自己常用的快捷键列个表,供人查阅。

     注意:下面每一个快捷键,都可以自由的换成你自己使用的用舒服的键上。

     关于Buffer
Ctrl+x Ctrl+f 打开一个文件,如果没有些文件,刚创建它。
Ctrl+x Ctrl+s 保存当前Buffer中的文件。
Ctrl+x Ctrl+w 保存当前Buffer为另一个文件,并打开编辑
Ctrl+x s 保存所有Buffer中的文件。
Ctrl+x 1 隐藏当前活动Buffer之外的Buffer。
Ctrl+x b 更换到其它的Buffer。
Ctrl+x Ctrl+b 显示所有的Buffer。
Ctrl+x 2 水平分割活动的Buffer为两个。
Ctrl+x 3 垂直分割活动的Buffer为两个。

     关于光标
Ctrl+a 移动光标到行首。
Ctrl+e 移动光标到行尾。
Ctrl+f 光标向前移动一个字。
Ctrl+b 光标向后移动一个字。
Alt+a 光标向前移动一行。
Alt+e 光标向后移动一行。
Alt+f 光标向前移动一个词。
Alt+b 光标向后移动一个词。
Ctrl+v 向前翻页。
Alt+v 向后翻页。

     关于命令
Alt+x 执行命令。
Ctrl+u 重复执行后边的命令。
Ctrl+x ( 开始定义一个宏。
Ctrl+x ) 结束定义这个宏。
Ctrl+x e 执行刚定义的宏。

     关于文本
Ctrl+k 吞掉当前光标到行尾的字符。
Ctrl+y 吐出刚刚吞进的字符。
Alt+y 吐出吞进的别的字符。

     为了自己使用方便,我自己定义了一些快捷键。如果你看着哪个好玩一点,可以将它们按行写入你的用户目录下的.emacs文件中。它们是:
;;;;Ctrl+x Alt+r进入Shell
(define-key ctl-x-map "\M-r" 'shell)
;;;;Ctrl+x Alt+m编译文件
(define-key ctl-x-map "\M-m" 'compile)
;;;;Ctrl+x Alt+g调试程序
(define-key ctl-x-map "\M-g" 'gdb)
;;;;Ctrl+x Alt+q交互式替换字符串
(define-key ctl-x-map "\M-q" 'query-replace)

     下面这些东西,是我用于每次从Shell中Exit之后,自动关闭它的Buffer的。
;;;;关闭退出Shell的Buffer
(setq outline-minor-mode-prefix [(control o)])
(add-hook 'shell-mode-hook 'wcy-shell-mode-hook-func)
(defun wcy-shell-mode-hook-func ()
  (set-process-sentinel (get-buffer-process (current-buffer))
         #'wcy-shell-mode-kill-buffer-on-exit)
     )
(defun wcy-shell-mode-kill-buffer-on-exit (process state)
     (message "%s" state)
     (if (or
     (string-match "exited abnormally with code.*" state)
     (string-match "finished" state))
     (kill-buffer (current-buffer))))

     Dos文本文档经常每行后面有个^M,下面这些东西可以互相转化Unix与Dos文本文件
    (defun dos-unix () (interactive)
    (goto-char (point-min))
    (while (search-forward "\r" nil t) (replace-match "")))
    (defun unix-dos () (interactive)
    (goto-char (point-min))
    (while (search-forward "\n" nil t) (replace-match "\r\n")))

     我的这些设置可以自动填加Perl源文件的文件头,你可以同样设置其它文件
    (defun insert_perl_head ()
    (interactive)
    (if (= (point-max) (point-min))
    (progn
    (insert "#!/bin/perl\n #This perl source code is for \n #Author:Alf\n #Email:[email protected]\n #Url:http://69.46.6.65/~alf/\n #If you find some bugs or have some advise to me, please contact me.")
    (previous-line 4))))
    (add-hook 'perl-mode-hook 'insert_perl_head)
相关阅读 更多 +
排行榜 更多 +
奇怪的塔防

奇怪的塔防

策略塔防 下载
fps僵尸生存安卓版

fps僵尸生存安卓版

飞行射击 下载
fps多人射击

fps多人射击

飞行射击 下载