要掌握使用 Emacs 的入门知识,需要经历陡峭的学习曲线。
谁应该学习本教程?
Emacs 的主要用户是程序员和 Web开发者。
在您开始前
在命令行提示符后输入 emacs。
 
 
起源
首先我们要讲 Emacs 是什么和它的起源。然后,我们马上开始讲该编辑器的使用:击键、命令、Emacs 环境和您起步所需的一些基本命令。我将为您展示添加和删除文本、剪切(kill)和粘贴(yank)文本的各种方法。
下一步,我们将介绍 Emacs 的光标移动系统。然后将讲搜索和替换功能。接着,我将向您展示 Emacs 对文件和缓冲区的作用。在结束本教程前,我将粗略地讲述只有在 Emacs 中才能找到的高级功能和额外的特性,包括模式、代码编写、连接和游戏。
 
 
Emacs 是什么?
根据 GNU.org 的描述,Emacs 是可扩展的、可定制的、自我编制文档实时显示的编辑器。它提供真正的 LISP ― 平滑地集成进编辑器 ― 用于编写扩展并提供一个基于 X Window 系统的界面。
 
 
开始学用Emacs
 C-<chr>; == Ctrl + 字符,同时按。 
 M-<chr>; == Meta + 字符,同时按。 
 但是,什么是 Meta?Meta 可以是一个专用键(有时这样标记),它可能是 Alt 键,它也可能在您系统所用的键映射表(keymap)中根本不存在。那没关系;Meta 有替代键,就是先按 Esc 键,再按后面的字符键(而不是一起按)。这样产生的结果和 M-<chr>; 相同。
 
 
命令和键绑定
Emacs 实现了一个版本 LISP,一种线程语言,用于构建它的命令和扩展。所有的命令都有名字,例如 Buffer-menu-bury、backward-char 和 forward-paragraph。
调用一个有名字的命令的方法是先输入 M-x,再输入命令名。
 
 
第一指示
您可以输入以下击键序列来退出 Emacs:C-x C-c。
Emacs 启动后,打开现有的文件的方法是按 C-x C-f 来查找文件并把它装入缓冲区。
另一方面,我常常想保存我已完成的工作再继续输入。保存我的工作再继续的击键组合是 C-x C-s。
 
 
基本的删除和撤销
在 Emacs 中,至少有一个击键和 Delete 等同:C-d 删除光标下的字符。撤销字符删除的方法是使用 C-x u 命令或真正的速写,C-_。对于多次撤销来说,后者更方便。
删除的字符被保存在缓冲区中,只是用于撤销,您只能通过撤销删除后的所有更改来得到那些修改。用于多字符区域的更“高级”形式的删除被同时保存到另一个不同的结构中,我们接下来将学习它。
 
 
Emacs 剪切和粘贴
 下面是您删除比较大的块时需要用的命令(它被称为“杀死”): 
 键绑定    操作(命令) 
 M-d       kill-word 
 M-Delete  backward-kill-word 
 M-k       kill-sentence 
 C-x       Delete backward-kill-sentence 
 C-k       kill-line
它被称作剪切环的原因是它存储了大于一个字符的已删除文本。还有,它能按顺序被存取,从位于最后的最新的,到编辑会话期间第一个被删除的,接着又回到最近的。所以,从拓扑结构上说,它是环。
输入 C-y,粘贴最近的块。重复按 C-y 粘贴出的还是那块。
 
 
通用参数
键绑定为 C-u 的命令 universal-argument 可被用作许多其它操作的前缀,包括我在前几屏中给您讲的许多删除命令。
例如,输入 C-u 6 C-k 可删除三行。是的,是三行,不是六行。(可是我的emacs是三行)别忘了那行文本和它的换行符是分开来被 kill-line 剪切的。
 
 
Emacs中主要使用命令按键如下。
Emacs的命令按键
C键:代表Contorl的意思,用户来控制与语言无关的单位(字符,行)。键盘上为 ctrl 键。
M键:代表Meta的意思,用来控制与语言定义的单位(如词,句子,段落)。键盘上一般为 Alt 键。
Esc:单击一次相当于M – 。
- :在Emacs的命令中,你经常会看到 - 这个符号,它代表按住前面一个字符,比如C – x 就表示按住Ctrl再按x。
命令的取消:C – g ,或者 按2次Esc.
 
 
Emacs文件的操作
包括对文件的打开,存储,和退出。
文件的打开:C-x C-f,在当前窗口打开一个文件buffer.
文件的保存: C-x C-s,对当前文件进行存盘。C-x s 保存多个缓冲区。
文件的另存为:C-x C-w.
打开一个新的farme:C-x 5 2.
退出Emacs:C-x C-c.
光标的移动
在编辑文本时对光标的控制。
上:C-p(previous).
下:C-n(next).
左:C-b(back).
右:C-f(forward).
移动到文件的开始处:M-<.
移动到文件的结尾处:M->.
移动到行首:C-a.
移动到行末:C-e(end).
向前移动一个词:M-f.
向后移动一个词:M-b.
向前移动一个句子:M-a.
向后移动一个句子:M-e.
向下滚动一屏:C-v(view).
向上滚动一屏:M-v.
 
 
文本的搜索
Emacs可以向前,向后搜索字符串,搜索命令是渐进的(incremental)的,就是搜索与输入同步,没输入一个字符,Emacs就已经开始搜索了。
向前搜索:C-r.
向后搜索:C-s.
注意:在搜索时候,可以按C-s/r 查看下/上一处,C-g取消搜索,回到初始搜索光标处;<Enter>结束搜索,光标留在搜索结果上。
 
 
多窗口
Emacs迷人之处很多,能在一个屏幕上同时显示多个文件就是其中之一。
添加窗口:C-x 2.新添加的窗口为当前文件。
关闭当前窗口外窗口:C-x 1.
滚动下方窗口(向下):C-M-v
滚动下方窗口(向上):C-M-Shift-v.
遍历窗口:C-x o.
在新窗口中打开文件:C-x 4 C-f.
 
 
 
 
Emacs提供的功能实在是太多了,更多的内容可以在Help文档中查看。
基本的用法是C-h.
Help文档信息:C-h ?.
命令的简要说明:C-h c .后面加所要查询的命令。如 C-h c <enter>C-p <enter>.
命令的更多说明:C-h k.
解释一个函数:C-h f.
显示Emacs变量文档:C-h v.
相关命令搜索:C-h a .后面输入一个关键词。Emacs会显示所有与之相关的命令。
 
 
 Emacs中光标的移动 
 
 移动光标  第 1 页(共5 页) 
 
 在 GUI 环境中运行 Emacs 意味着您可以使用鼠标或方向键(例如向上和向下的箭头以及 Home 和 End 键)在文档中移动光标。然而,我将回顾 Emacs 自身的移动方式,因为这是唯一保证能用的方法,不管您是在拨号线上的终端,还是通过控制台或 SSH 连接访问一台机器,还是任何其它方法。 
它自身的键移动方式还有其它好处,那就是使您的手总放在键盘上,在属于它们的地方,不仅为了效率,也为了人体工学。当我在 GUI 模式中使用工具时,我发现键盘和鼠标间的环境切换使我失去 10% 的效率。
 
 
C-f 使光标向前移动一个字符,而 C-b 使光标向后移动一个字符。注意这包括换行。C-n 移到下一行,而 C-p 使光标向上移动一行。可能的话,垂直移动保持列不变。然而,如果下一行或上一行比当前光标所在的列短,光标将自动移到新行的末尾。如果您继续移到更长一行,光标将回到新行中的“原来”那列。
 
 
 词、行和句  第 3 页(共5 页) 
 
 从词移到词时,Forward 和 Back 仍然指引您,但要用 Meta 键而不是 Ctrl 键。注意词的定义是连续的字母和数字。在词与词之间移动时,标点符号被算作空格。在我们学习它们时,每个命令都试用几次。M-f 使光标向前移动一个词,而 M-b 向后移动一个词。 
当我们学习更多行操作时,助记符的帮助不再那么有用:“a”和“e”键分别表示头和尾。C-a 把您带到当前行的第一列而 C-e 把您带到行末
 
 
标准的向前递增搜索是由 C-s 命令启动的。从光标位置向后搜索是由 C-r(isearch-backward)命令来完成。有各种内部搜索命令可使用;您可以输入以下命令来得到全部描述。
启动向前正则表达式搜索的方法是输入 ESC C-s(也就是,Esc 键,然后 Ctrl 键加“s”键)。类似地,向后搜索的方法是使用 ESC C-r。
 
 
 替换文本  第 4 页(共5 页) 
 
 Emacs 中,替换命令有两种基本类型。第一种是无条件替换,它基于字符串或正则表达式规范。没有缺省的键绑定(由此我不得不得出结论它并不被认为是重要的),但它的使用方法是输入 M-X replace-string(或 M-x replace-regexp)。跟在后面的是目标字符串/表达式和替换字符串。替换是无条件的并且仅从光标位置开始向前替换。 
 
 第二个命令 query-replace 的绑定键是 M-%(另一个需按 Shift 的击键)。您在小缓冲区中的提示符后输入目标和替换字符串后,每个匹配按顺序被突出显示,您会收到该采取什么操作的提示。按 ? 将显示各种可能的回答的全部列表。最常见的是:“y”表示替换并继续,“n”表示跳过并继续,“q”表示退出,还有 ! 表示无条件替换剩下的全部匹配。 
 
 
记住,您可以得到任何命令的详细帮助,不管它有没有键绑定,方法是输入 C-h d command-name。
 
 
 自动保存、保存和另存为  第 2 页(共7 页) 
 
 好消息 ― Emacs 确实包含自动保存选项,通过配置该选项可以把您的文件保存到指定的位置。例如,在我的配置中,本教程的自动保存文件的名字是 #Living_In_Emacs.xml#,它位于和原始文件相同的目录。其它配置有不同的命名约定和保存位置(常常是 /var/tmp)。Emacs 自动保存的缺省值是在 30 秒空闲时间或 300 个输入事件后。 
 
 
在本教程的开头,我介绍了 save-buffer 命令:C-x C-s。把缓冲区内容另存为不同文件名的对应键绑定是 C-x C-w。路径/文件名提示符出现在小缓冲区中,可通过一对 Tab 击键把它展开为目录列表,就象查找文件。
 启动时的缓冲区  第 3 页(共7 页) 
 
 使用多个缓冲区是很容易的。然而,Emacs 本身是一个文本应用程序,所以有一组命令用于切换缓冲区和查看它们。当 Emacs 不带文件参数启动时,有两个叫草稿(scratch)和消息(messages)的初始缓冲区。为了编辑,您打开的其它缓冲区的命名是根据包含它们内容的文件。 
 
 
 
 
 Emacs 中的窗口  第 4 页(共7 页) 
 
 
把您的窗口数目减为一的方法是输入 C-x 1,这将最大化当前包含光标的窗口并关闭其它窗口
 
 
使用中的缓冲区 第 5 页(共7 页)
 
 
 再谈缓冲区  第 6 页(共7 页) 
 
 如果您知道您的目的缓冲区的名字(我常常是这种情况),那么缓冲区列表的使用就没必要。先在小缓冲区中输入 C-x b 以得到提示符,然后输入目的缓冲区的名字 ― 或至少输入足够的多,以致于能用 Tab 键来完成。按 Enter,把那个缓冲区在当前窗口中打开。 
 
 
  文件是磁盘上的实体。 
     * 缓冲区是文件中的数据的副本,可被 Emacs 编辑。 
     * 窗口是缓冲区的视图。
 
 
                  
                  
                  
                  
                            
这篇Emacs教程适合程序员和Web开发者,讲解了Emacs的命令按键、文件操作、光标移动、搜索功能、多窗口操作等内容。学习Emacs可以提高效率,通过C键和M键结合进行文本编辑,C-x C-c退出,C-x C-f打开文件,C-u作为通用参数,C-k删除行,C-y粘贴。Emacs提供了丰富的光标移动和搜索命令,支持多窗口编辑。
          
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					1499
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            