📄 00000004.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER> <BR>Emacs 的缓冲区与视窗 <BR> <BR>EMACS 的缓冲区与视窗的关系密不可分,缓冲区是用来存放 <BR>编辑文件的,但视窗却是用来显示缓冲区的文件。现在就来谈谈 <BR>缓冲区和视窗。 <BR>缓冲区(buffer)是 EMACS 编辑文件时,暂时存放文件的地方。 <BR>这个地方只用来暂时存放文件,要想永久保留这些文件,必需将 <BR>暂时存放的文件储存起来,一般是使用硬碟来安置缓冲区的文件。 <BR> 在 EMACS 中所做的任何事情,都是先暂放於缓冲区内。 <BR>EMACS 处理档案的方式,也是先将档案从硬碟中取出後, <BR>再放於缓冲区内。所以不论是删减、修改与新增文件,都是在 <BR>缓冲区内进行,除非将缓冲区内的文件存回硬碟,否则硬碟的内容 <BR>都不会因缓冲区内容的改变而改变。 <BR> 文件未存回硬碟而离开 EMACS(kill EMACS),将永远消失 <BR>。但 EMACS 有一个自动储存文件的功能,称为 `` auto save'' 。 <BR>每当键入一定数量的字元(通常是三百个字元),EMACS 就会 <BR>自动做储存的动作;经过一段停置的时间(通常是三十秒), <BR>EMACS 也会做自动储存的动作。 <BR> EMACS 自动储存的功能并非将文件直接存回该档案 <BR>所在的硬碟中,而是将缓冲区的文件存入一个暂存档内。 <BR>只有以存档的指令,例如 `` Ctrl-x Ctrl-s'' 的指令,将缓冲区的 <BR>文件存回硬碟时,缓冲区内的文件才会存回硬碟中。只有当文件 <BR>存回硬碟中,EMACS 才会自动清除此暂存档。若缓冲区的内容 <BR>一直未存回硬碟,此暂存档就会一直存在著,直到存回硬碟才会消失。 <BR> EMACS 如此安排暂存档有两个好处,第一个好处是可以 <BR>确保编辑的档案资料不会流失;第二个好处是可预防机器意外关机 <BR>或当机,档案不及存回硬碟,所造成的损失。EMACS 命名此暂存档 <BR>的方式,是以缓冲区所使用的档名为依据。在档名的前後各加上一个 <BR>``#'' ,就是暂存档的名称。举例说明,若所编辑的档名为 ``emacs.doc'' , <BR>其产生的暂存档即为: <BR> <BR> #emacs.doc# <BR> <BR>若所编辑的档案未存回硬碟时, EMACS 会自动产生一个暂存档。 <BR>下次编辑此档时, EMACS 允予使用者从暂存档中将流失的资料回复。 <BR>例如编辑的档案为 ``emacs.doc'',在离开 EMACS 时未存回硬碟 , <BR> EMACS 会自动产生一个 ``#emacs.doc#'' 的自动储存档。当重新启动 <BR>EMACS 且编辑 ``emacs.doc'' 档时, EMACS 会提示使用者此档案 <BR>已被更改过但未给予适当的储存。此时,使用者可自行决定是否 <BR>要从自动储存的档案中(#emacs.doc#)将 ``emacs.doc'' 档中 <BR>未被储存的资料找回。 <BR> 如何从自动储存档中将资料找回呢?想要从自动储存的档案中, <BR>恢复原始档案中流失的资料,可以使用 `` Meta-x recovery-file'' <BR>的指令。若存放於硬碟中的档案,有相对应的自动储存档时, <BR>可经由如下的步骤将资料找回: <BR> <BR> 1. 键入 ``Ctrl-x Ctrl-f RET'' <BR> Find file: ~/ filename <BR> 2. 在 Find file: 处输入所欲编辑的档案後後, echo area <BR> 会出现如下的讯息: <BR> Auto save file is newer: consider M-x recovery-file <BR> <BR> 3. 键入 ``Meta-x recovery-file RET'' <BR> 此时 echo area 会自动出现相对应的自动储存的档案名称, <BR> 若愿意执行恢复的动作,只要直接按下 RET 即可。否则, <BR> 以 ``Ctrl-g'' 指令,放弃此命令的执行。 <BR> <BR> 除了暂存档外, EMACS 对於每一个编辑的档案, <BR>都会在编辑前做一份备份,以防止在编辑的过程中因一时的疏忽 <BR>而将档案毁损。备份档的设计是,当档案被存回硬碟後,备份档 <BR>也不会因此而消失。 <BR> EMACS 命名备份档的方式,是在所要编辑的档名之後加上 <BR>``~'' 。例如, ``emacs.doc'' 的备份档就为 ``emacs.doc~''。 <BR> <BR> 以上的设定是可以改变,因为它们都是变数。下面 <BR>列出相关的变数,使用者可自行决定其所需。 <BR> <BR> * auto-save-visited-file-name <BR> 设定自动储存档案的种类。可以设为暂存档也可设为正在 <BR> 使用的原档案。 <BR> * delete-auto-save-file <BR> 设定档案被存回硬碟後,自动储存的暂存档是否会自动删除。 <BR> * auto-save-interval <BR> 设定自动储存时的字元数。 <BR> * auto-save-timeout <BR> 设定自动储存时的时间。 <BR> <BR> <BR>想知道如何设定变数吗?在 EMACS 中任何设定变数的方法都是以 <BR> `` Meta-x set-variable(或 ESC-x set-variable)''的指令来完成 <BR>变数的设定。变数值的设定,可以只设定真假值或设定数值或是 <BR>设定字串。 <BR> 若只是设定变数的肯定或否定值时, EMACS 有一个遵循 <BR>的规则。EMACS 中以任何 ``non-nil'' 的值来代表肯定,习惯上是以 <BR> ``t'' 来表示肯定;而以 ``nil'' 来代表否定。 <BR> <BR> 在设定新的变数值之前,若想知道目前变数的值, <BR>EMACS 可以 `` Ctrl-h v''(describe-variable) 来查阅变数的值。 <BR>现在就举设定 <BR>``auto-save-visited-file-name'', <BR> <BR>``和 auto-save-interval'' <BR> 二个变数来说明变数设定的方法。 <BR> <BR> 1. 以 `` Ctrl-h v'' 查阅 auto-save-visited-file-name 的变数。 <BR> 2. 以 `` Meta-x set-variable'' 来设定变数 。 <BR> 3. 再以 `` Ctrl-h v'' 来查阅所设定的 auto-save-visited-file-name 变数。 <BR> <BR>现在来看看设定 auto-save-visited-file-name 这一个变数的实际过程: <BR> <BR> 1. 键 ``Ctrl-h v RET'' <BR> <BR> <BR> <BR> 1. echo area 处会出现 Describe variable: <BR> <BR> 2. 在 Describe variable: 後键入 auto-save-visited-file-name <BR> <BR> 3. 萤幕上会另开一个视窗,显示如下的讯息: <BR> <BR> auto-save-visited-file-name's value is nil <BR> <BR> Documentation: <BR> *Non-nil says auto-save a buffer in the file it is visiting, when <BR> <BR> practical. <BR> Normally auto-save files are written under other names. <BR> <BR> <BR> <BR> <BR> 2. 键入 ``Meta-x set-variable'' <BR> <BR> <BR> <BR> 1. echo area 处会出现 Set varaible: <BR> <BR> <BR> 2. 在 Set variable: 後键入 auto-save-visited-file-name RET <BR> <BR> <BR> 3. echo area 处会出现 Set auto-save-visisted-file-name to value: <BR> <BR> <BR> 4. 此时可以利用在 ``:'' 之後的 minibuffer,输入变数 <BR> 的值。此变数的值不是肯定就是否定的。目前的值是 nil,要改 <BR> 其值为肯定的可以输入 t。 <BR> <BR> <BR> <BR> 3. 再以 ``Ctrl-h v'' 来检视变数设定的情形。 <BR> <BR>上一个例子是设定肯定与否定值的例子,现在来看看设定变数值 <BR>为数字的例子。 auto-save-interval 实际执行的过程: <BR> <BR> 1. 键入 ``Ctrl-h v RET'' <BR> <BR> <BR> <BR> 1. echo area 处会出现 Describe variable: <BR> <BR> 2. 在 Describe variable: 後键入 auto-save-interval <BR> <BR> 3. 萤幕上会另开一个视窗,显示如下的讯息: <BR> <BR> auto-save-interval's value is 300 <BR> <BR> Documentation: <BR> <BR> *Number of keyboard input characters between auto-saves. <BR> <BR> Zero means disable autosaving due to number of characters typed. <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -