Emacs 的特点
- display editor 实时编辑器
- 高级编辑器
- Self-documenting
- 可定制性
- 可扩展性(集成Lisp语言)
- 支持X Window环境
编辑模式
Emacs采取的编辑方式是对不同类型的文本进入相应的编辑模式,即“主模式”(major mode)。 Emacs针对多种文档定义了不同的主模式,包括普通文本文件、各种编程语言的源文件、HTML文档、TEX与LaTeX文档,以及其他类型的文本文件等等。 每种主模式都有特殊的Emacs Lisp变量和函数,使用户在这种模式下能更方便的处理这一特定类型的文本。例如,各种编程的主模式会对源文件文本中的关键字、注释以不同的字体和颜色加以语法高亮。主模式还提供诸如跳转到函数的开头或者结尾这样特地定义的命令。 Emacs还能进一步定义“次模式”(minor mode)。每一个缓冲区(buffer)只能关联于一种主模式,却能同时关联多个次模式。比如,编写C语言的主模式可以同时定义多个次模式,每个次模式有着不同的缩进风格(indent style)。Emacs快捷键
掌握Emacs的快捷键可以说是Emacs爱好者的基本功,也是提高编辑速度和质量所必备的,但是初学者可能记不住那么多的快捷键必要时可以翻一下,最常用的快捷键数量也就数十个。Emacs的快捷键都是绑定于ctrl和alt(或称meta)上的,例如c-x就是ctrl+x,m-x就是alt+x。当然所有的按键都可以自定义。 当要退出编辑时C-x C-c 代表着,先按C-x 再按C-c才可以退出编辑环境.
文件操作| C-x C-f | 打开文件,出现提示时输入/username@host:filepath可编辑FTP文件 |
| C-x C-s | 保存文件 |
| C-x C-w | 存为新文件 |
| C-x i | 插入文件 |
| C-x C-q | 切换为只读或者读写模式 |
| C-x C-c | 退出Emacs[编辑本段]编辑操作 |
| C-f | 前进一个字符 |
| C-b | 后退一个字符 |
| M-f | 前进一个字 |
| M-b | 后退一个字 |
| C-a | 移到行首 |
| C-e | 移到行尾 |
| M-a | 移到句首 |
| M-e | 移到句尾 |
| C-p | 后退一行 |
| C-n | 前进一行 |
| M-x goto-line | 跳到指定行 |
| C-v | 向下翻页 |
| M-v | 向上翻页 |
| M-< | 缓冲区头部 |
| M-> | 缓冲区尾部 |
| C-M-f | 向前匹配括号 |
| C-l | 当前行居中 |
| M-n or C-u n | 重复操作随后的命令n次 |
| C-u | 重复操作随后的命令4次 |
| M-b | 后退一个字 |
| C-a | 移到行首 |
| C-e | 移到行尾 |
| M-a | 移到句首 |
| M-e | 移到句尾 |
| C-p | 后退一行 |
| C-n | 前进一行 |
| M-x goto-line | 跳到指定行 |
| C-v | 向下翻页 |
| M-v | 向上翻页 |
| M-< | 缓冲区头部 |
| M-> | 缓冲区尾部 |
| C-M-f | 向前匹配括号 |
| C-l | 当前行居中 |
| M-n or C-u n | 重复操作随后的命令n次 |
| C-u | 重复操作随后的命令4次 |
| C-u C-u | 重复操作随后的命令8次 |
| C-x ESC ESC | 执行历史命令记录,M-p选择上一条命令,M-n选择下一条命令
|
| C-d | 删除一个字符 |
| M-d | 删除一个字 |
| C-k | 删除一行 |
| M-k | 删除一句 |
| C-w | 删除标记区域 |
| C-y | 粘贴删除的内容.注意:C-y可以粘贴连续C-k删除的内容;先按C-y,然后按M-y可以选择粘贴被删除的内容 |
| C-@ | 标记开始区域 |
| C-x h | 标记所有文字 |
| C-x | 交换光标位置和区域标记区开头 |
| M-w | 复制标记区域 |
| C-_ or C-x u | 撤消操作 |
shell操作| M-x shell | 打开SHELL |
| M-! | 执行SHELL命令 (shell-command) |
| M-1 M-! | 执行SHELL命令,命令输出插入光标位置,不打开新输出窗口 |
| M-| | 针对某一特定区域执行命令(shell-command-on-region), 比如 C-x h M-|uuencode[编辑本段] |
窗口操作 | C-x 0 | 关闭本窗口 |
| C-x 1 | 只留下一个窗口 |
| C-x 2 | 垂直均分窗口 |
| C-x 3 | 水平均分窗口 |
| C-x o | 切换到别的窗口 |
| C-x s | 保存所有窗口的缓冲 |
| C-x b | 选择当前窗口的缓冲区 |
| C-x ^ | 纵向扩大窗口 |
| C-x } | 横向扩大窗口 |
缓冲区列表操作| C-x C-b | 打开缓冲区列表 |
| d or k | 标记为删除 |
| ~ | 标记为未修改状态 |
| % | 标记为只读 |
| s | 保存缓冲 |
| u | 取消标记 |
| x | 执行标记的操作 |
| f | 在当前窗口打开该缓冲区 |
| o | 在其他窗口打开该缓冲区 |
目录操作| C-x d | 打开目录模式 |
| s | 按日期/文件名排序显示 |
| v | 阅读光标所在的文件 |
| q | 退出阅读的文件 |
| d | 标记为删除 |
| x | 执行标记 |
| D | 马上删除当前文件 |
| C | 拷贝当前文件 |
| R | 重名名当前文件 |
| + | 新建文件夹 |
| Z | 压缩文件 |
| ! | 对光标所在的文件执行SHELL命令 |
| g | 刷新显示 |
| i | 在当前缓冲区的末尾插入子目录的内容 |
| [n]m | 标记光标所在的文件,如果指定n,则从光标所在的文件起后n个文件被标记 |
| [n]u | 取消当前光标标记的文件,n的含义同上 |
| t | 反向标记文件 |
| %-m | 正则标记 |
| q | 退出目录模式 |
说明:目录模式中,如果输入!,在命令行中包含*或者?,有特殊的含义。*匹配当前光标所在的文件和所有标记的文件,?分别在每一个标记的文件上执行该命令。
程序编译| M-x compile | 执行编译操作 |
| M-x gdb | GDB排错 |
| M-x dbx | DBX排错m |
| M-x xdb | XDB排错 |
| M-x sdb | SDB排错 |
搜索模式| C-s key | 向前搜索 |
| C-s | 查找下一个 |
| ENTER | 停止搜索 |
| C-r key | 反向搜索 |
| C-s C-w | 以光标所在位置的字为关键字搜索 |
| C-s C-s | 重复上次搜索C-r C-r 重复上次反向搜索 |
| C-s ENTER C-w | 进入单词搜索模式 |
| C-r ENTER C-w | 进入反向单词搜索模式 |
| M-x replace-string ENTER search-string ENTER | 替换 |
| M-% search-string ENTER replace-string ENTER | 交互替换 |
| C-r | 在进入查找/替换模式后,该命令进入迭代编辑模式 |
| C-M-x | 退出迭代编辑模式,返回到查找/替换模式 |
| C-M-s | 向前正则搜索 |
| C-M-r | 向后正则搜索 |
| C-M-% | 正则交互替换 |
SHELL模式| C-c C-c | 相当于Bash下的C-c |
| C-c C-z | 相当于Bash下的C-z |
| C-c C-d | 相当于Bash下的C-d |
| M-p | 执行前一条命令 |
| C-n | 执行下一条命令 |
| C-c C-o | 删除最后一条命令产生的输出 |
| C-c C-r | 屏幕滚动到最后一条命令输出的开头 |
| C-c C-e | 屏幕滚动到最后一套命令输出的结尾 |
| C-c C-p | 查看前一条命令的输出 |
| C-c C-n | 查看后一条命令的输出 |
打印资料| M-x print-buffer | 先使用pr,然后使用lpr |
| M-x lpr-buffer | 直接使用lpr |
| M-x print-region | |
| M-x lpr-region | |
收发邮件| M-x mail | 发送邮件 |
| C-c C-s | 发送 |
| C-c C-c | 发送并退出 |
| M-x rmail | 接受邮件 |
定制
Emacs用户可以根据自身的需要和偏好对编辑器进行定制。强大而自由的个人定制功能是Emacs受到广泛欢迎的重要原因之一。定制Emacs主要有三种方法。第一种方法是使用Emacs的交互式定制功能。Emacs提供了图形化的交互界面,使用户能够对可定制的公共变量进行设置。这种方法使Emacs的初学者不需要接触Emacs Lisp代码即可完成定制。第二种方法是将一系列按键记录为宏,调用这一宏可以重复进行已经记录的一系列复杂操作。宏可以保存并命名,以便按名调用,不过同一时刻只能存在一个匿名的宏。
第三种方法是通过使用Emasc Lisp完成Emacs的定制。这种方法最为复杂,但是也提供了更多的灵活性和更强大的功能。用户通常将个人定制的Emacs Lisp代码保存在一个名为.emacs的配置文件中,Emacs程序运行之初便读取这一文件,完成用户要求的配置。用户可以通过.emacs文件重设变量、重新定义按键的绑定(key bindings)、以及定义新的命令,以方便用户个人的使用。很多高级用户的.emacs文件的个性化配置长达数百行甚至更多,这些个人的定制使他们的Emacs不仅与默认配置的功能不同,每个人的Emacs之间也千差万别。这种差异能很好的满足不同个性的偏好和不同工作的需求。 如果一段Emacs Lisp代码确实有用,它通常会被打包并发布给其他用户。在因特网上能找到很多这样来自第三方的elisp库,例如能用于编辑维基百科条目的wikipedia-mode。Usenet上的新闻组gnu.emacs.sources专门发布新的elisp库。有些第三方代码最终还成为了Emacs“标准库”的一部分。
扩展阅读:1.http://www.hoodong.com/wiki/Emacs
没有评论:
发表评论