📄 emacs中文教程.txt
字号:
Emacs教程中文版
Emacs 的命令通常包括控制键(就是上面标有 Ctrl或Ctl的那个)或者 是META键(上面标
有EDIT或ALT)。为了方便起见我们将用下面的缩写来 代替这些键的全称:
C-<chr> 意思是当敲入字符<chr>时同时按住控制键,因此,C-f表 示:按住控
制键并且按 f 。
M-<chr> 表示当键入<chr>时按住META或ALT或EDIT键。如果没有META 或ALT或
EDIT键,则用ESC键代替。<ESC>表示ESC键
注意:退出Emacs,按C-x C-c(两个字符)。在文本左边区域的“>>”符号 表示让你试着
使用一个命令。比如:
>> 现在键入C-v(观看下一屏)移动到下一屏。(就象前面说的,按v的同时 也按住控制键
)。从现在开始,每当你读完一屏的时候都可以用它来翻屏。
注意在翻屏后会保留上屏的最后一行;这是为你继续阅读文本提供某些连 贯性。
你所需要知道的第一件事是如何把光标从一个地方移动到另一个地方。你 已经知道了如
何向前翻一屏--用 C-v。要向后翻一屏,键入M-v。
>> 试着键入 M-v 和 C-v 几次。
* 摘要(SUMMARY)
---------------------------
下面几个命令对整屏观看时有用:
C-v 向前翻一整屏。
M-v 向后翻一整屏。
C-l 清除屏幕并重新显示所有的文本,然后把光标移动到屏幕的中
央。 (注意是Control-L,而不是 Control-1)。
>> 寻找光标,并且注意它在文本里的位置。然后键入C-l。再寻找光标你会 注意到光标
现在会出现在同样的文本附近。
* 基本光标控制(BASIC CURSOR CONTROL)
-----------------------------------------------------------------
整屏整屏的移动是很有用的,可是如何把光标移动到屏幕上文本里的一个指定 的地方呢
?
有好几个方法可以实现。最基本的方法是用命令 C-p,C-b,C-f,和C-n。这些 命令每
个都使光标在屏幕上往特定的方向移动一行或者一列。下面是一个图表 显示了这四个命
令和它们所移动的方向:
上一行,C-p
:
:
向前,C-b ...... 当前光标的位置 ...... 向后,C-f
:
:
下一行,C-n
>> 用C-n或C-p把光标移动到图表中间。然后键入C-l会看到整个图表出现在屏 幕的中央
。
你也许会发现这些字母很容易记住:P 代表上面的(previous),N 代表下一个 (next),
B 代表向前(backward),F 代表向后(forward)。这些是基本的光标位 置命令,你将经
常会用到它们。所以现在学习它们很有好处〕
>> 用几次 C-n 把光标向下移动到这一行。
>> 用 C-f 把光标移动到行里,再用C-p把光标上移。观察当光标在行的中间时 C-p做了
些什么。
每一个文本行都以一个换行符结尾,它用来当作行与行之间的分格。你的文件的 最后一
行的尾部应该有一个换行符(但Emacs并不要求一定要有一个)。
>> 试着在行的开头使用C-b。它将会把光标移到上一行的末尾。这是因为它向后 移的时
候穿过了换行符。
C-f 也能象 C-b一样穿过换行符。
>> 使用几次C-b,使您能知道光标在哪。然后用C-f移动到行的末尾。然后再用 一次C-
f,使光标移动到下一行。
当你移动超过屏幕的顶部或底部,光标回移动到下一屏的中间,这叫做“滚屏 (scroll
ing)”。它使得Emacs滚屏移动到文本上指定的部位而不是移出屏幕。
>> 试着用C-n把光标移过屏幕的底部,看看回发生什么。
如果觉得一个一个字符的移动太缓慢,可以一个单词一个单词的移动。M-f(Meta-f) 向
前移一个单词,M-b向后移一个单词。
>> 键入几个M-f和M-b。
当光标在一个单词的中间,M-f移动到单词的末尾。当光标在两个单词间的空白部分 M-
f移动到后一个单词的末尾。M-b与M-f一样,只是移动的方向相反。
>> 键入M-f和M-b几次,中间穿插一些C-f和C-b以使你能观察到M-f和M-b在单词中和 单
词间的不同行为。
注意比较C-f,C-b与M-f,M-b。通常情况下Meta键用于有关语言单位(词,句,段落) 的
操作;而控制键用于编辑时的基本单位(字符,行等)。
这是句与行的比较:C-a和C-e移动到一行的开头和末尾,M-a和M-e移动到一个句子 的开
头和末尾。
>> 键入一对C-a,再键入一对C-e。 键入一对M-a,再键入一对M-e。
你会看到重复键入的C-a什么也不做,而重复键入的M-a则会移动一个以上的句子。
光标在文本中的位置也叫“点(point)”。在段落里,光标标示出了点在屏幕上文本 里
的位置。
下面是简单的光标移动命令的总结,包括单词和句子的移动命令:
C-f 向前移动一个字符。
C-b 向后移动一个字符。
M-f 向前移动一个单词。
M-b 向后移动一个单词。
C-n 移动到下一行。
C-p 移动到上一行。
C-a 移动到行首。
C-e 移动到行尾。
M-a 向前移动到句子的开头。
M-e 向后移动到句子的末尾。
>> 试着对每一个命令都实践几次,它们都是经常要用到的命令。
另外两个重要的光标移动命令是M-<(Meta小于),它移动光标到整个文本的开头,M-> (
Meta大于)它移动光标到整个文本的末尾。
在多数终端上,“<”在逗号的上面,所以你必须用Shift键来输入它。在这些终端 上,
你也必须用Shift键来输入M-<;没有Shift键,你可以输入M-逗号。
>> 现在就试试M-<,移动到本教程的开头,然后再用C-v移回这里。 现在就试试M->,移
动到本教程的末尾,然后再用M-v移回这里。
你也可以用方向键来移动光标,如果你的终端有方向键的话。我们建议学习C-b, C-f,
C-n和C-p有三个原因。第一,它们能在所有类型的终端上工作。第二,你获得 了使用E
macs的锻炼,你将会发现输入这些CTRL加字符比按方向键要快(因为你不必 把你的手从
键盘上移开)。第三,一旦你养成了使用这些CTRL加字符的命令的习惯, 你就能一样容
易的学习其他高级的光标移动命令。
大多数Emacs命令接收一个数字参数;对大多数命令来说,这表示命令重复的次数。 输
入重复命令次数的方法是在输入命令之前按C-u和数字。如果你有META(或EDIT或 ALT)键
,则有另一种方法输入数字参数:在按住META键的时候输入数字,我们建议 学习C-u方
法,因为它能在任何终端上工作。
例如,C-u 8 C-f 向前移动8个字符。
>> 试着使用带数字参数的C-n或C-p,只用一个命令就把光标移动到与本行相邻的 行上
。
绝大多数命令把数字参数当作重复次数,但也有几个例外。C-v和M-v就是。当给出 一个
参数,只是上滚或下滚数字指定的行数而不是屏数。比如,C-u 4 C-v滚动4行 屏幕。
>> 现在试试 C-u 8 C-v。
这将使屏幕滚动8行,如果你想往回滚动的话,键入一个带参数的M-v。
如果你正在使用X窗口,在Emacs窗口的左手边有一个叫做滚动条的矩形区域。你能 通过
用鼠标点击滚动条来滚动文本。
>> 试着在滚动条顶部的高亮区域点击中键。这将使文本滚动,滚动的位置取决于 你点
击的长短。
>> 试着按住鼠标中键上移或下移鼠标,你将看到当你移动鼠标时文本会上下滚动。
* 当EMACS挂起时(WHEN EMACS IS HUNG)
------------------------------------------------------------------
当Emacs停止响应你的命令时,你能用C-g把它安全的停止。当一个命令执行了太长的 时
间时你可以用C-g把它终止。
你也可以用C-g来取消数字参数和输入后又不想执行的命令。
>> 键入C-u 100 产生一个值为100的数字参数,然后按C-g。再按C-f。它只会移动 一个
字符,因为你用C-g取消了参数。
如果错误的输入了一个<ESC>,你能用C-g消掉它。
* 禁止命令(DISABLED COMMAND)
----------------------------------------------------
一些Emacs命令是“禁止”的,所以新手不会因偶然而执行它。
如果你键入了一个禁止命令,Emacs会显示一条消息说明这条命令是干什么的,并且问
你是否需要执行它。
如果你真的想要执行,敲空格键继续。通常,如果你不想执行禁止命令,用“n”来回
答。
>> 输入<ESC>一条禁止命令),然后用n来回答。
* 窗口(WINDOWS)
-----------------------------
Emacs 能有好几个窗口,每一个显示自己的文本。我们将在后面解释怎样对多窗口 操作
。现在我们要解释怎样去除多余的窗口屏回到基本的单窗口编辑状态。 这是一个例子:
C-x 1 一个窗口(也就是除去其他所有的窗口)。
因为Control-x跟了数字1。C-x 1使包含光标的窗口占满整个屏幕,屏删除其他所有 窗
口。
>> 把光标移动本行并输入 C-u 0 C-l。
>> 键入Control-h k Control-f。 看这个窗口如何缩小,并在按Control-f的时候出现
了一个新的文档窗口。
>> 键入C-x 1 并且看到那个文档窗口消失了。
* 插入和删除(INSERTING AND DELETING)
---------------------------------------------------------------
如果你要插入文本,只须输入文本。输入的字符你能见到,比如A,7,*等等。Emacs 会
立即把它们插入。键入<Return>(回车键)插入一个换行符。
你能用<Delete>删除你输入的最后一个字符。<Delete>就是键盘上标着“Del”的键。
在某些情况下,“Backspace”键作用和<Delete>一样,但不总是这样!
通常,<Delete>立即删除光标前面的那个字符。
>> 输入几个字符,然后用<Delete>删除它们。不必担心这个文件回被改变;你不会 替
换主教程。这只是你的个人拷贝。
当一行文本太长而超过屏幕宽度时,这一行会在屏幕的下一行被“继续”。文本的右 边
会有一个反斜杠“\”表示它被继续。
>> 插入文本直到最右边,然后再插入。你将看到一个继续了的行。
>> 使用<Delete>删除文本直到行的长度在屏幕的宽度以内。继续的行将会消失。
你能像删除其他任何字符一样删除换行符。删除两个行间的换行符会使它们合并为一 行
。如果这一行很长屏幕显示不下的话,将会用一个继续的行来表示。
>> 把光标移动到一行的开头按<Delete>这将使本行和上一行合为一行。
>> 按<Return>重新插入你删除的换行符。
记住大多数的Emacs命令能接收一个重复次数。这包括文本字符,把一个文本字符重复
的插入几次。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -