📄 emacs中文教程.txt
字号:
n> 来继续恢复自动保存的数据。
* 回显区域(ECHO AREA)
------------------------------------
如果Emacs发现你输入命令的速度很慢的话它会在屏幕底部为你显示出来,这个区域叫
“回显区域”。
* 模式行(MODE LINE)
---------------------------------
回显区域上面的一行称为“模式行(mode line)”。模式行显示与下面类似的东西:
--**-Emacs: TUTORIAL (Fundamental)--L670--58%----------------
这一行给出了有关你在编辑的文件和Emacs状态的有用信息。
你已经知道了文件名意味着什么。--NN%--指出你现在在文本里的位置;它意味着上面还
有NN%的文本。如果是在文件的开头,会用--Top-- 来代替--0%--。如果是在行的末尾
, 会显示--Bot--。如果你正在看的文本内容很少,可以全部显示在屏幕上,模式行会
说 --All--。
前面的星号表示你已经改动过文本了。一旦你保存了文件或打开了一个新文件,模式行
的 这部分就不是星号而是破折号了。
模式行上括号里的部分是现在的编辑模式。现在是缺省的基本(Fundamental)模式。它是
“主模式(major mode)”的一种。
Emacs有很多不同的主模式。有些意味着不同的语言或不同的文本。如Lisp模式(Lisp m
ode), 文本模式(text mode)等等。在任何时候有且只能有一种主模式被激活。并且它
的名字会出 现在现在显示“Fundamental”的位置上。
每一个主模式都有些自己的命令。就象不同的编程语言的注释看起来不同一样。每种主
模式 插入的注释也不同。可以用扩展命令切换进某种主模式。例如,M-x fundamental
-mode 是切 换进基本模式。
>> 输入 M-x text-mode<Return>
不必担心,没有命令会给Emacs带来很大改变。但是你可以看到现在M-f和M-b把省略号当
作 单词的一部分。而先前,在基本模式里,M-f 和M-b把省略号当成当成分隔符。
主模式通常作诸如此类微小的变化:大多数命令在每个主模式里作“同样的工作”,但
又有 些微小的不同。
要观看关于你现在的主模式的文档,按C-h m。
>> 键入C-u C-v一次和多次使本行接近屏幕的顶端。
>> 输入C-h m ,看看文本模式和基本模式有些什么不同。
>> 按C-x 1 从屏幕上关掉这个文档。
主模式之所以叫做主模式是因为也存在从模式,从模式与主模式完全不同。每个从模式
可以自 己打开或者关闭,独立于所有其他从模式,也独立于你的主模式。所以你可以不
用从模式或者 同时用很多种从模式。
有一种从模式很有用,特别是在编辑英文文本时。它是自动填充模式(auto fill mode)
。当这个 模式打开的时候,当输入的文本过宽的时候就会自动折行。
你能用M-x auto-fill-mode<Return>来打开自动填充模式。如果此模式已经打开M-x au
to- fill-mode<Return>则把它关闭。我们把这叫做切换开关。
>> 输入M-x auto-fill-mode<Return>。然后插入一些“asdf”直到看到这行被分为两行
。你 必须在中间放一些空格,只有到空格的时候才会换行。
通常边界宽度是70,但你能用带数字参数的C-x f 命令来改变它。
>> 键入带参数20的C-x。(C-u 20 C-x f) 然后输入一些文本看现在每行只有20个字符了
。然后用C-x f把它改回70。
如果你在一个段落的中间产生了改变,自动填充模式将不会重新填充。要想重新填充段
落, 当光标在段落里的时候按M-q。
>> 把光标移到上一段按 M-q。
* 搜索(SEARCHING)
-----------------------------
Emacs 能朝前和朝后搜索字符串(指相邻的一些字符或单词)。搜索是一个移动光标的操
作, 它把光标移动到字符串出现的下一个地方。
Emacs 的搜索命令和其他大多数编辑器不同,它是“增量式(incremental)”的,这意味
着搜索在你键入字符串时就开始了。
开始一个向前搜索的命令是C-s,C-r是往回搜索。但等等,先别忙。
当你输入C-s是你将注意到在回显区域会出现一个字符串“I-search”。这告诉你Emacs
开始 了一个增量搜索,并在等待你输入要搜索的东西。<RET>结束查询。
>> 现在键入C-s开始一个搜索。慢慢的输入单词‘cousor’,在输入每一个字母的时候
停顿一 下,注意看光标发生了什么。
>> 再输入一次C-s,来搜索“cursor”出现的下一个地方。
>> 现在输入<Delete>四次看看光标移到了哪里。
>> 输入<RET>结束搜索。
看到发生什么了吗?在Emacs的增量搜索里,你输入多少字符串它就试着搜索这些字符出
现的 地方。到字符串出现的下一个地方,只须再按一次C-s。要搜索的字符串不存在的
话,Emacs 会发出蜂鸣并告诉你当前的搜索“失败(failing)”,按 C-g 也是终止搜索
。
注意:在某些系统上,输入 C-s 会把屏幕冻结住使你从Emacs看不到更多的输出。这 表
示这个操作系统的“特性”叫做“控制流程”,它拦截了C-s不让它到达Emacs那里。 要
使屏幕解冻,输入C-q,然后看Emacs手册里的“Spontaneous Entry to Incremental S
earch”一节,按上面的建议来对付这种“特性”。
如果你在搜索的过程里按了<Delete>,你将注意到要搜索的字符串的最后一个字符会被
删除 并且光标会回到上一个被搜索到的地方。比如,假设你键入了“c”,将会搜索“
c”第一次出 现的地方。然后如果你键入“u”,光标将移到“ cu”第一次出现的地方
。现在键入<Delete>。 这将从搜索的字符串里把“u”删掉,这时光标回到“c”第一次
出现的地方。
如果你在搜索时按了Control或meta键加字符(少数几个少数命令例外,如C-s和C-r),搜
索将被 终止。
C-s向当前光标的后面搜索字符串出现的地方。如果你需要搜索前面文本里的东西,用C
-r来代替。 我们所介绍的C-s的每个特性C-r也支持,除了方向相反。
* 多窗口(MULTIPLE WINDOWS)
------------------------------------------------
Emacs有一个非常好的特性是能同时在屏幕上显示不止一个的窗口。
>> 把光标移到本行上按C-u 0 C-l。
>> 现在按C-x 2,它把屏幕分裂成两个窗口,每个窗口都显示本教程。光标在上面的窗
口里。
>> 按C-M-v 滚动到下面的窗口里。(如果你没有一个真正的Meta键,那么按ESC C-v)
>> 按 C-x o (“o” 指 “其他(other)”) 把光标移到到下面的窗口里。
>> 用 C-v 和 M-v 滚动下面窗口里的文本。 在上面的窗口里看本教程。
>> 再次按 C-x o 使光标回到上面的窗口里。 现在光标象以前一样在上面的窗口里了。
你能一直用C-x o在窗口间切换。每个窗口都有它自己的光标位置,但仅有一个窗口能显
示活动 的光标。所有的编辑命令都发生在那个显示光标的窗口上。我们把这个窗口叫做
“选中窗口( selected window)”。
当你在一个窗口里编辑文本,而用另一个窗口作参考时命令C-M-v非常有用。你总是能把
光标留 在所编辑的地方,而用C-M-v来翻阅另一窗口。
C-M-v 是 CONTROL-META 加字符的一个例子。 如果你有一个真正的META 键,你能同时
按住 CTRL 和 META 再按“v”来输入C-M-v。CTRL 和 META 谁先按谁后按无所谓。
如果你没有一个真正的META 键, 你可以用 ESC 来代替。这时候次序是有关系的: 你
必须让 ESC 跟在 CTRL-v后面; 否则 CTRL-ESC v 将不工作。 这是因为 ESC 是一个有
意义的字符而不 是一个修饰字符。
>> 输入 C-x 1 (在上面的窗口里) 以消除下面的窗口。
(如果你在下面的窗口里键入C-x 1,将会把上面的窗口去掉。可以把这个命令看作是“
只保留你 现在在的那个窗口。)
你不必一定要在两个窗口里显示同样的缓冲。如果你在一个窗口里键入C-x C-f查找文件
,另一个 窗口的内容不会改变。你能独立的在每个窗口里查找文件。
这是让两个窗口显示不同内容的另一种方法:
>> 在你输入的文件名后再输入C-x 4 C-f,然后用<Return>结束。会看到指定的文件出
现在下面 的窗口里。光标也在那里面。
>> 键入C-x o 回到上面的窗口,然后输入C-x 1删掉下面的窗口。
* 递归编辑层(RECURSIVE EDITING LEVELS)
----------------------------------------------------------------
有时候你会进入“递归编辑层(recursive editing level)”。由模式行上的方括号指示
。它在主模式 名的括号外面。例如你也许会看到(Fundamental)变成了[(Fundamental)
]。
要退出递归编辑层,按ESC ESC ESC。这是一个通用的退出命令,你也可以用它除去额外
的窗 口,或者退出微型缓冲。
>> 输入 M-x 进入一个微型缓冲; 然后用 ESC ESC ESC 离开。
你不能用C-g来退出递归编辑层。这是因为C-g只能取消在递归编辑层里面的命令。
* 获取更多的帮助(GETTING MORE HELP)
--------------------------------------------------------------
在本教程里我们试着为你开始使用Emacs提供了足够多的信息。但是有关Emacs的信息实
在是太 多以至于不能全部都在这里说明。但是,你还应该学习更多有关Emacs的东西,
因为它另外还有 很多有用的特性。Emacs提供了很多读取有关命令的文档的命令。这些
“帮助”命令都以 Control-h开头,叫做“帮助字符”。
为了使用帮助特性,输入字符C-h,然后再输入一个字符来说明你需要哪种帮助。如果你
真的不知 道,输入C-h ? 然后 Emacs会告诉你它能给你什么样的帮助。如果你输入了C
-h 又觉得不需要任 何帮助,你可以用C-g来取消它。
(在有的地方,C-h的作用被改变了。如果按C-h在屏幕的底部没有出现有关帮助的信息的
话,试试 用F1和M-x help RET来代替。)
最基本的帮助特性是C-h c。输入C-h,然后是字符 c,然后输入一个命令字符和序列;
然后 Emacs 会显示这个命令的简洁的描述。
>> 输入 C-h c Control-p.
显示的消息看起来会象这样:
C-p runs the command previous-line
这告诉你“功能的名字”。功能的名字主要用于对Emacs的功能扩充和定制。但因为功能
的名字 指出了命令的用途,所以最好不要改动它。
C-h c后面可跟多字符命令,比如 C-x C-s 和 (如果你没有 META 或者 EDIT 或者 ALT
键) <ESC>v 。
要获取有关命令的更多信息,用C-h k 代替 C-h c。
>> 输入 C-h k Control-p.
这将在一个Emacs窗口里显示命令的文档。当你读完后可以用C-x 1除去帮助文本。如果
不想马上 离开,你可以一边编辑一边参考帮助文本,然后再按C-x 1。
这是一些有用的 C-h 选项:
C-h f 描述一个功能,在你输入了这个功能的名字后。
>> 输入 C-h f previous-line<Return>。 将打印出C-p命令所实现的所有功能。
C-h a 命令查找。输入一个关键字,Emacs将列出所有名字里有这个关
键字的命令。 包括所有以Meta-x开始的命令。对有些命令,C-h a 也将列出实现同一功
能的 几个命令序列。
>> 输入 C-h a file<Return>.
这将在窗口里显示所有名字里有单词“file”的M-x命令。
>> 输入 C-M-v 来滚动帮助窗口,做上几次。
>> 输入 C-x 1 来删除帮助窗口。
* 总结(CONCLUSION)
--------------------------------
记住,永远都用C-x C-c来退出Emacs。用C-z来退到一个临时的外壳里,以使你过后还能
回到 Emacs。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -