BBS水木清华站∶精华区
Registers and Bookmarks
EMACS 的 register 是一个可将文件与游标位置
( point loaction)暂时存放其间的地方。
register 有它的缺失,那就是一旦离开目前所使用的
EMACS,所有存於 register 中的资料,也会随著消失。
若想再使用这些放於 register 中的文件或游标位置时,
必需重新将资料存入 register 中。所以 register
只适合暂时性的储存,若想永久使用文件或游标位置,
必需仰赖 bookmark的帮助了。
bookmark 与 register 相似,它们都用来
储存物件,但在相似中又有不一样的地方。二者不同的地方
如下:
* 命名上的不同
bookmark 的名称可由「一个以上」的字元(character)
组成,但 register 的名称只能由「一个」字元来命名
* 资料保存的时间不同
存於 bookmark 的资料具有永恒性,它可以在离开 EMACS
後还存在。但存於 register 中的资料,在离开EMACS 後就无效了。
现在就分别介绍 register 与 bookmark
二者的用法。首先讨论 register 的用法。 register
可存放的内容有,游标的位置、一般文件与长方形文件的内容、
档案的名称以及本文未曾讨论的视窗资料等等。现在就一一
来介绍这些内容如何存放,以及存放後如何将其取出用,
与视窗有关的 register 在此依然不予讨论。
* 储存与移动至特定 point 位置的方法
o Ctrl-x r SPC r(point-to-register)
将游标目前所在的位置,存於 register 中。存於
register 的步骤如下:
1. 将游标移至所要储存游标位置的地方。
2. 键入 ``|Ctrl-x r|'' 以及 ``SPACE''(空白键)後,
echo area 会出现
Point to register:
3. 此时可输入任意一个字元(character),做为此
register 的名称。以後要使游标移至此位置就要靠此字元。
register 的名称,只能由一个字元组成。
o Ctrl-x r j r(jump-to-register)
根据 register r 所储存的位置,将游标移至
r 所设定的位置。使用此指令前,必需确定 register r,
已设定的妥当了
以下就是设定游标位置以及使用游标位置的步骤:
1. 先以 ``Ctrl-x r SPC r'',将游标的位置储存於
register r 内。
2. 键入 ``Ctrl-x r j'', echo area 会出现
``Jump to register:'' 的讯息。
3. 在 ``Jump to register:'' 之後,输入已设定妥善的
register r 的名称。
此时游标所在的缓冲区若与 register r 所设定
的缓冲区不一样时,游标会自动移至另一个缓冲区,视窗的
内容也会换成新的缓冲区内容。所以,使用 register
所存放的游标位置,是可以跨越不同的缓冲区来做移动的。
* register 还可用来存放经常被访问到的档案。
有人或许会不解,为何耗费如此的功夫,只为了从事
`` Ctrl-x Ctrl-f'' 指令可以做到的事。使用 `` Ctrl-x Ctrl-f''
有一个不便之处,就是若所欲访问的档案与 EMACS 的预设档案位置
不一样时,则必需告之完整的路径名。所以,此时若使用 register
来储存档名,就只需要给予 register 的名称即可。至於,
冗长的全称就交给 register 去处理了。以下就是以
register 存档案的方法:
1. 使用 register 来储存档名与储存游标位置,最大的
不同点在於,以 register 来储存档名必需借助 ``.emacs'' 档。
因为以 register 来储存档案名称,必需借由 ``.emacs'' 来设定。
2. 以 register 来储存档案名称的实际执行步骤如下:
1. 设定 ``.emacs'' 的方法
在 ``.emacs'' 档中以 ``set-register'' 函式 ,将 register
的名称以及其所储存的档名设定清础。以下的例子就是将
``chap7.tex'' 的档名,放於名为 ``a'' 的 register 时,
``.emacs'' 档的设定方法 。
(set-register ?a '(file . "\~/report/emacs/basic/chap7.tex"))
2. 当档案名称的设定已在 ``.emacs'' 档中完成後,必需离开
EMACS ,再重新进入 EMACS 一次。因为只有重新执行
EMACS , 修改过的 ``.emacs'' 档才有机会被重新执行。
重新执行过的 EMACS ,就可以 `` Ctrl-x r j r''
将档案从 register r 中拿出来使用。
以下就是使用 register r 的方法:
1. 键入 ``Ctrl-x r j RET '', echo area 会出现
``Jump to register:''。
2. 待 ``Jump to register:'' 的讯息出现时,即可输入已设定好
register 名称。以上例为例,若输入 ``a'',
则视窗会出现 chap7.tex 的文件内容。
* register 中储存文件的方法
储存於 register 的文件可以有二种:一种为线性的文件
(linear text),另一种为长方形的文件(rectangle text)。
所以有此区分,原於使用 register 储存文件,需先将所要
储存的文件做上标记,再根据标记放於 register 中。
线性文件与长方形文件在标记上是一样的,要区分二者的差异
只能仰赖使用时的指令了。想进一步了解长方形区域,请参考 5.4 节
``Move Text and Copy Text'' 有关长方形部份。以下就讨论二者的用法。
o 线性文件的 register 设定方法如下:
1. 将要放入 register 的线性文件做好标记。
设定标记的详细方法,请参考 5.3 节。现略做题示,
使用 Ctrl-@ 或 Ctrl-SPC 做为线性文件的起始点,
以游标所在的位置为终点。
2. 使用指令 `` Ctrl-x r s r'',将所设定好的线性文件
放入 register r 中。
3. 欲使用 register r 中的资料时,可以指令
`` Ctrl-x r i r'' 将存放於 r 中的资料取出使用。
以上所设定的 register 有一特性,就是离开EMACS 後所有的设定
也成为历史。想将 register 内容保留的方法,是将设定写在
``.emacs'' 中,如下是以 register ``a'' 储存 register 文件,
以及以 register ``.'' 储存 ``。'' 资料的设定法:
(set-register ?a "register")
(set-register ?. "。")
o 长方形文件的 register 表示法:
1. 将要放入 register 的长方形文件做好标记。设定标记的
方法以及所谓长方形文件的定义,请参考第五章第三节及第四节。
2. 使用指令 `` Ctrl-x r r r'',将所设定好的线性文件
放入 register r 中。
3. 使用 register r 中的资料时,可以指令
`` Ctrl-x r i r'' 将存放於 r 中的资料取出使用。
放於 register 中的文件,不论是线性文件或长方形文件,
将其拿出使用的指令都是一样的。不一样处在於放入 register
时的差异。会有差异是不难理解的,因为二者在处理标记的过程是一样,
只有靠存入 register 时,以不同的指令来加以区别。
谈完了 register ,接下来介绍 bookmark 。
bookmark 的一些基本概念,已在前面略做介绍了,现在就进一步详述它。
bookmark 与 register 在记录游标位置的功能是一样的,
但在对 register 的命名方面二者就显得有差异了。 bookmark
的命名可以由一个以上的字元组成。换言之,它可以有一个较长的名字,
但 register 就只能由一个字元来命名。而且以 bookmark
设定的资料,可永久储存起来,即使离开EMACS, bookmark
的资料也不会就此消失。所以想要永久保存的资料,只有借重 bookmark 了。
以下就是 bookmark 的使用方法。
1. 以 `` Ctrl-x r m bookmark ''指令,将游标所在的
位置做上记号(mark),此记号就称为 bookmark。
当第一次使用 `` Ctrl-x r m'' 指令时, echo area 会出现
``Set bookmark (visited-filename) :'' 的讯息。此时,若不输入任何
字元只键入 RET ,系统会以所访问的档名做为 bookmark
的名称。若输入其它的字串,则 bookmark 就以此字串命名之。
2. 以 `` Ctrl-x r b bookmark RET'' 指令,来移动游标的位置。
键入 ``Ctrl-x r b'' 时, echo area 会出现
``Jump to bookmark (bookmark-name) :'',
括号内的名称为系统的预设值。若所给予的预设值不是心中所爱,
可以在 `:' 之後输入想要的 bookmark 名称。
资料以 bookmark 的方式储存时,使用者若不另行指定
储存的档名,系统会将有的讯息存入一个名为
``~/.emacs-bkmrks''\index.emacs-bkmrks
的档案中。
接下来,讨论一个使 EMACS 的编辑功能更强化的议题 - Fixing Typos 。
BBS水木清华站∶精华区