一、emacs编辑器简介
emacs编辑器是由C语言和LISP语言编写的。LISP(链表处理语言)是由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。 我们可以使用LISP来扩展emacs,从而为emacs添加更多的命令。(补:emacs -nw:以命令行的方式来运行emacs,而不启动GUI界面)
* 自动保存功能
如果你已经修改了一个文件,但是还没来得及存盘你的计算机就了,那么你所做的修改就很可能会丢失。为了避免这样的不幸发生,Emacs 会定期将正在编辑的文件写入一个“自动保存”文件中。自动保存文件的文件名的头尾各有一个“#”字符,比如你正在编辑的文件叫“hello.c”,那么它 的自动保存文件就叫“#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。
所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保存文件)然后输入 M-x recover file<Return> 来恢复你的自动保存文件。在提示确认的时候,输入 yes<Return>。
* 其他
- 当emacs失去响应时,C-g命令可用来结束纸条命令的执行。其功能相当于Shell中的Ctrl+C
- 有一些 Emacs 命令被“禁用”了,以避免初学者在不了解其确切功能的情况下误用而造成麻烦。如果你用到了一个被禁用的命令,Emacs 会显示一个提示消息,告诉你这个命令到底是干什么的,询问你是否要继续,并在得到你的肯定之后再执行这命令
二、emacs编辑器的界面
1. 编辑区
用来进行文本编辑的区域。
2. 回显区
如果 Emacs 发现你输入多字符命令的节奏很慢,它会在窗格的下方称为“回显区”的地方给你提示。回显区位于屏幕的最下面一行。
3. 状态栏
- 位于回显区正上方的一行被称为“状态栏”。状态栏最开头的星号(*)表示你已经对文字做过改动。刚刚打开的文件肯定没有被改动过,所以状态栏上显示的不是星号而是短线(-)。
- 状态栏中的小括号用来指明当前使用的编辑模式,默认是fundamental(主模式),emacs的主模式包括了文本模式以及编辑程序源码的Lisp模式等。
三、emacs所能提供的工作环境
- emacs可以执行Shell命令
- emacs可以作为Directory Editor(Dired)
- emacs可以编辑、编译以及调试程序
- emacs可以编辑其它主机上的文档
- emacs可以打印文件
- emacs具有年历(Calendar)以及日记功能
- emacs可以用来阅读man page和info文档
- emacs可以收发电子邮件
- emacs可以阅读网络上的电子布告栏(GNUS)
- emacs具有版本控制的功能(CVS)
- emacs可以提供娱乐环境(游戏功能)
emacs所提供的这些功能,都是先唤起代表此功能的模式(mode)。emacs的模式,分成主要模式(major mode)与次要模式(minor mode)。每一次只能使用一个主模式,而且主模式是必须要的。在一个主模式下,俄可以搭配一个以上的次要模式。使用次要模式相当于启用了该次要模式所对应的插件。
四、emacs命令
- emacs中的每一个命令都有一个命令名,命令名就是该命令所对应的LISP函数的函数名。在emacs中,我们可以为这些命令配置快捷键,从而达到快速调用命令的目的。
- .使用emacs来执行命令的方法有两种:(1).使用Ctrl键 (2).使用Meta键。所有emacs命令都可以用Meta键表示出来,键盘上如果没有Meta键,则可以用Alt键或ESC键来代替。常用的emacs命令通常会有一个快捷键与之相连。快捷键通常是以Ctrl来开头(C-x C-c)。如果要使用Meta键来表达与“Ctrl-x Ctrl-c”相同的效果,则使用“M-x save-buffers-kill-emacs”。使用Meta键,可以利用emacs的completion功能。使用emacs的completion功能的方法是将部分字符串键入后,再按下TAB、SPACE或?键即可。
(1).TAB键:尽可能将其的字填满。
(2).SPACE键:将分隔符(-)之前的字填满。
(3).?:将所有可能的completion选择都列出来。
- 由于emacs中所有的命令都有一个命令名(LISP函数的函数名),因此,我们可以使用“M-x 命令名”来调用emacs中的所有的命令。
* 基本光标控制
- C-v:向下翻屏,与PageDown效果相同(v-> vertical)
- M-v:向上翻屏,与PageUp效果相同
- C-l:重绘屏幕,并将光标所在行置于屏幕的中央
- C-b:光标向前移动一格(b->backward)
- C-f:光标向后移动一格(f->forward)
- C-p:光标向前移动一行(p->previous)
- C-n:光标向后移动一行(n->next)
- M-b:光标向前移动一个单词
- M-f:光标向后移动一个单词
- C-a:光标移动到行首
- C-e:光标移动到行尾
- M-<:光标移动到文章的开头(注意:“<”的输入要shift键,实际为Alt+Shift+<)
- M->:光标移动到文章的结尾
- C-u:给命令传递参数。例如:“C-u 2 C-d”表示删除两个字符
- M-x goto-line n RET:调到第n行
* 编辑命令
- C-d:删除光标后的一个字符
- C-k:删除从光标到行尾的字符(k->killl)
- C-x u:Undo(想要redo,随便输入一个字符,在Undo)
- C-SPC、C-@、M-x set-mark-command:设置mark
- C-x h:将整个缓冲区设置为区域
- C-w:将区域的文本删除,并放入yanking ring中。区域指的是从mark到point(光标所处的位置称为point)之间的文本
- M-w:复制区域到yanking ring中
- C-y:将yanking ring中最后一个区域插入当前缓冲区
- M-j:回车并且到下一行产生适当的缩进
- M-m:将光标移动到当前行的第一个非空白字符上
- M-;:产生通用注释
- M-x comment-region:把块注释掉
- M-x kill-comment:消除注释
* 查找与替换
- C-s:向后搜索,光标将停在第一个匹配的字符串处。再按一次C-s将继续搜索下一个匹配的字符串。如果要停止搜索,则使用C-g,此时光标将会回到搜索开始的位置
- C-r:向前搜索
- M-x replace-string:替换
* 文件操作
- C-x c-f:打开文件,如果文件不存在则创建
- C-x C-s:保存文件。第一次存盘时,emacs会将文件重命名来备份。重命令的规则通常是在原文件名后加上一个“~”字符。如果要关闭emacs的自动备份功能,使用 M-x customize-variable <Return> make-backup-files <Return>
- C-x C-w:将文件“另存为”
- C-x C-v:打开一个新文件,并关闭当前缓冲区
- C-x C-r:以只读的方式打开文件
- C-x i:将文件插入光标当前位置
* 缓冲区
- Emacs 把每个编辑中的文件都放在一个称为“缓冲区(buffer)”的地方。每打开一个文件,Emacs 就在其内部开辟一个缓冲区用来保存打开的文件的数据。ESC ESC ESC命令可以用来退出打开的小缓冲区,比如:命令提示窗格等
- C-x C-b 列出当前所有的缓冲区(b->buffer)
- C-x b 缓冲区名:切换到指定的缓冲区(例如:C-x b M<tab>:切换到以M开头的缓冲区)
- C-x s:保存emacs中所有的缓冲区(s->save)
- C-x right:切换到下一个缓冲区
- C-x left:切换到前一个缓冲区
- C-x C-c:退出emacs,并询问用户是否保存
- C-x k:关闭缓冲区
- C-z:将emacs挂起,然后回到Shell中,并不退出emacs。之后,我们可以使用%emacs或fg命令来回到emacs
* 窗口
Emacs 可以有多个窗格,每个窗格显示不同的文字。
- C-x 0:关闭光标所在的窗口
- C-x 1:保留光标所在的窗格,并将其扩大到整个屏幕,同时关掉所有其它的窗格
- C-x 2:水平分割当前窗口
- C-x 3:垂直分割当前窗口
- C-x o:在emacs的窗格中进行切换(o->other)
- C-M-v:滚动下方的窗格。一般在我们使用下方的窗格进行参考,而又不想将光标切换到下一个窗格时使用
* 使用帮助
- C-h c 快捷键:显示快捷键的简要说明
- C-h k 快捷键:显示快捷键所对应的命令名及其详细说明
- C-h a 关键字:显示包含有指定关键字的命令
- C-h i:查看Info文档
* 在emacs中运行shell命令
- M-! cmd RET:打开一个名为“*Shell Command Output*“的窗口,并把该命令的执行结果显示在其中。按下”C-x 1“组合键可以关闭这个窗口。由于Shell命令的输出是在一个编辑缓冲区里,因此我们可以对它进行编辑、保存等操作。
- M-| cmd RET:运行Shell命令,并使用编辑窗口中选定的区域作为该Shell命令的输入,然后可以选择是否用该Shell命令的输出来替换编辑窗口中选中的区域。
- C-u M-! cmd RET:执行一条Shell命令,并将其输出放到编辑区中光标所在的位置处,而不将其输出到”Shell Command Output“窗口。
- M-x shell:运行一个子Shell,该子Shell对应于emacs中的一个名为”*Shell*"的缓冲区,此后,我们就可以交互式的运行Shell命令了。
- M-x term:运行一个子Shell,该子Shell对应于emacs中的一个名为“*Terminal*”的缓冲区。使用该命令获得的子Shell是一个完整的Shell的模拟,与我们直接在Shell中操作没有什么差别。
- M-x eshell:运行emacs shell。该Shell为emacs自己实现的一个shell,而前面运行的shell都为系统中的shell程序(例如:/bin/csh等)。我们可以通过设置变量shell-file-name来设置emacs所使用的默认shell
* Dired功能
- emacs的Dired(Directory Editor)功能使emacs缓冲区能够用来显示目录列表,并可以用来进入目录的子目录。Dired缓冲区是只读的,不能够被修改。
- C-x d:进入Dired
* emacs配置文件
emacs配置文件通常位于计算机的 $HOME 目录,如果是 MS Windows (Windows 2000, Windows XP以上),默认是 c:\Documents and Settings\username\Application Data\,这个适用于 Emacs22 以上的版本。Emacs21 默认的 $HOME 目录在 C:\ 。当然也可以通过环境变量 $HOME 重新设置,总之在比较大众化的操作系统中,你都可以通过C-x C-f ~/.emacs 来编辑您的个性化配置文件。
;;显示时间
(display-time)
;;显示行号
(column-number-mode t)
(show-paren-mode t)
;;设置TAB宽度为4
(setq default-tab-width 4)
;;以下设置缩进
(setq c-indent-level 4)
(setq c-continued-statement-offset 4)
(setq c-brace-offset -4)
(setq c-argdecl-indent 4)
(setq c-label-offset -4)
(setq c-basic-offset 4)
(global-set-key "\C-m" 'reindent-then-newline-and-indent)
(setq indent-tabs-mode nil)
(setq standard-indent 4)
;;开启语法高亮。
(global-font-lock-mode 1)
;;设置默认工作目录
(setq default-directory "/home/test/source/")
;; 去掉滚动条
(set-scroll-bar-mode nil)
;;关闭开启画面
(setq inhibit-startup-message t)
(setq indent-tabs-mode t)
;;不产生备份文件
(setq make-backup-files nil)
;;设置自定义变量
(custom-set-variables
'(column-number-mode t)
'(current-language-environment "UTF-8")
'(display-time-mode t)
'(ecb-options-version "2.32")
'(mouse-1-click-in-non-selected-windows t)
'(mouse-drag-copy-region t)
'(mouse-yank-at-point t)
'(save-place t nil (saveplace))
'(show-paren-mode t)
'(transient-mark-mode t))
(custom-set-faces
;;选择小工具栏图标
(tool-bar-mode -1)
rectangle(列)模式编辑 和emacs shell(摘抄)
不敢独享,与大家分享。也可以在Emacs中用C-x C-h列出全部命令,查找C-x r c,所有列模式命令都是以C-x r开始的
C-x r C-@ point-to-register
C-x r SPC point-to-register
C-x r + increment-register
C-x r b bookmark-jump
C-x r c clear-rectangle
先用C-space或者C-@设一个mark,移动光标到另一点,使用C-x r c可以清楚mark到光标处的矩形区域,该区域留下空白。
C-x r d delete-rectangle
删除矩形区域,不留空白,后面的字符前移
C-x r f frame-configuration-to-register
C-x r g insert-register
C-x r i insert-register
将某个寄存器的内容插入某处
C-x r j jump-to-register
C-x r k kill-rectangle
就是剪切某个选定的矩形区域,用C-x r y可以贴上
C-x r l bookmark-bmenu-list
C-x r m bookmark-set
C-x r n number-to-register
C-x r o open-rectangle
在选定的矩形区域插入空白
C-x r r copy-rectangle-to-register
将选定的矩形区域复制到某个寄存器
C-x r s copy-to-register
C-x r t string-rectangle
在选定区域所有列前插入同样的字符
C-x r w window-configuration-to-register
C-x r x copy-to-register
C-x r y yank-rectangle
类似于矩形区域的粘贴,就是将刚用C-x r k剪切的矩形区域粘贴过来
C-x r C-SPC point-to-register
摘自:http://chandlewei.blogbus.com/logs/15583440.html
在 Emacs 里面同时打开多个 shell 会话:
通过重命名shell所在缓冲区的名字可以开启多个shell
E-x shell
E-x rename-buffer shellA
E-x shell
这时就开启了两个不相干的shell:shellA 和*shell*
也可以通过其他方式来开启shell,例如:
1. M-x eshell 开启Emacs Shell
2. M-x term 开启linux终端,可以指定你要的终端SHELL。但是这个可能会拦截你的EMACS命令。
整理你的屏幕:
通过C-c C-o可以清除上次命令的输出,特别是对于cat或dmesg这种产生大量输出的命令。
详细文章:http://www.ibm.com/developerworks/cn/aix/library/0811_yangbh_emacs2/index.html
文章来源:
http://x-spirit.spaces.live.com/Blog/cns!CC0B04AE126337C0!826.entry
分享到:
相关推荐
其它与 Emacs 相关的工作环境 与 Emacs 有关的议题 如何起动 Emacs 如何离开 Emacs EMACS 的萤幕安排 Emacs 的缓冲区与视窗 Emacs 的基本编辑指令 如何载入档案与储存档案 Emacs 的基础编辑指令 何谓 ...
本压缩包包括了:living in emacs, survive in emacs & gnu emacs pocket referrence. 希望大家喜欢
Emacs使用详解Emacs使用详解Emacs使用详解
Emacs is one of the most powerful text editors available, yet it is not the easiest to navigate, in part because it covers so much. Sams Teach Yourself Emacs in 24 Hours helps simplify the program by ...
快速搭建的主要思想是采用执行注册表脚本 设定 emacs 查找配置文件的路径为 c: emacs home emacs 同时又在此文件中定位到我们现在刚下载的路径 及更改 home 目录的方式 包含最基本的配置 颜色 字体等 脚本以及常用的...
GNU_Emacs orelly出版 学习emacs的经典著作
emacs windows下emacs 编辑器 据说是神的编辑器
本配置文件基于网上提供的其他配置文件进行修改。 支持: emacs 24 +cedet 1.1 +ecb 2.40 源配置文件下载地址: http://download.csdn.net/detail/karotte/3812760
非常好用的emacs配置文件!日历功能,自动不全功能,行号显示功能,屏蔽光标功能等!
自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种分别是:1984年由Richard Stallman发起并由他维护至今的GNU Emacs,以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。它们都...
EMACS,即Editor MACroS(宏编辑器)的缩写,被称为神之编辑器,最初由Richard Stallman于1975年在MIT协同Guy Steele共同完成。这一创意的灵感来源于TECMAC和TMACS,它们是由Guy Steele、Dave Moon、Richard ...
Emacs使用手册 Emacs使用手册 Emacs
emacs快速指南,学习emacs的基础教程
emacs中文教程,emacs中文手册,Emacs基础教程,Learn_GNU_Emacs
emacs使用手册 简要介绍emacs的使用
emacs播放MP3文件。 emacs播放MP3文件。 emacs播放MP3文件。
Emacs笔记
emacs多年使用总结
emacs config file, emacs编辑器的一个配置文件
emacs quick reference.