📄 00000006.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER> <BR>何谓 Undo <BR> <BR> 在 EMACS 中想要将已经做过的动作放弃,以恢复旧观。 EMACS 将其 <BR> 称为 undo,以下就介绍如何 undo: <BR> <BR> o Ctrl-x u(undo) <BR> o Ctrl-\_ (undo) <BR> <BR> 以上两个 Hotkey 都是用来执行 undo 的指令。 <BR> 提供二个 Hotkey,是因为有些键盘并无明显使用 `` Ctrl-\_'' 的方法, <BR> 为了弥补无法以一个字元达到 undo 效果的键盘,故另行提供 <BR> `` Ctrl-x u'' 给无法使用 `` Ctrl-\_'' 的使用者。 <BR> EMACS 所提供的 undo,可以连续恢复最近使用过的指令。 <BR> undo 的顺序是最新使用过的指令最先被 undo ,第二次使用 <BR> undo 则恢复第二新的指令,任何指令的输入(除了 undo 本身之外) <BR> 都会使指令输入的顺序 重整, 这也同时影响 undo 的顺序。 <BR> <BR> 使用 undo 有一个限制,就是 undo 只能 undo <BR> 对缓冲区内容造成改变的指令。对於只是改变游标动作的指令,是无法以 <BR> undo 来恢复旧观。若所有修改过内容的指令,都以 undo 恢复原状後, <BR> 再一次使用 undo 的指令,echo area 会出现如下的讯息: <BR> <BR> no furter undo information <BR> <BR> 当使用了 undo 之後,还想要在 redo 这个已被 undo 的动作时, <BR> 有一个技巧可以达成如此的效果。 <BR> <BR> 1. 首先键入一个不会改变缓冲区内容的指令(如游标移动的指令),使原来 <BR> 存放指令的顺序因新指令的加入而改变。 <BR> 2. 再使用一次 undo 的指令,就可以达到 redo 的效果了。 <BR> <BR> 现举一实例来说明此 > 视窗上现有的资料为: <BR> <BR> This is a test. <BR> <BR> * 如下为所执行的一连串指令,括号内表示所用过的指令: <BR> <BR> <BR> <BR> 1. 执行四次 DEL ,视窗显示如下的讯息: <BR> <BR> This is a <BR> <BR> 所使用的指令集如下: <BR> DEL DEL DEL DEL <BR> <BR> 2. 将游标至字元 ``i'' 处,视窗显示的讯息并无改变: <BR> <BR> This is a <BR> <BR> 所使用的指令集如下: <BR> DEL DEL DEL DEL <BR> <BR> 3. 键入 Meta-d,视窗显示如下的讯息: <BR> <BR> This a <BR> <BR> 所使用的指令集如下: <BR> DEL DEL DEL DEL Meta-d <BR> <BR> 4. 键入 Ctrl-x u,视窗显示如下的讯: <BR> <BR> This is a <BR> <BR> 此时恢复最新被使用过指令 ``Meta-d'' 前的状况 <BR> (Ctrl-x u 不为恢复的对象),也就是步骤二的情形。 <BR> 此时使用的过指令集如下: <BR> DEL DEL DEL DEL Meta-d Ctrl-x u <BR> <BR> 5. 键入 Ctrl-f,视窗仍出现与先前相同的讯息: <BR> <BR> This is a <BR> <BR> 所使用的指令集则增加如下: <BR> DEL DEL DEL DEL Meta-d Ctrl-x u Ctrl-f <BR> <BR> 6. 此时可以 Ctrl-x u 恢复第一次 undo 前的状况, <BR> 即步骤三的状况。视窗出现: <BR> <BR> This a <BR> <BR> 因为记录指令历史的指标,此时己在第二个 Ctrl-x u 处,但 <BR> Ctrl-x u Ctrl-f 均不在 undo 的行列中,所以此时可以再恢 <BR> 复一次 Meta-d 前的状况。 <BR> 所使用的指令集如下: <BR> DEL DEL DEL DEL Meta-d Ctrl-x u Ctrl-f Ctrl-x u <BR> <BR> <BR>一般而言,每一个使用过的编辑指令都有一个与之相对应的 undo 记录。 <BR>每一个 undo 的记录,都只对目前的缓冲区有效。有的指令需要一个 <BR>以上的 undo 记录来完成 undo 的动作;有的指令会先汇集一群 <BR> undo 的记录,当使用 undo 时,会将此汇集的结果一次展现出来。 <BR>例如,单一字元运作的指令,若每次使用 undo ,只恢复一个字元则 <BR>非常的不经济,所以遇到此种情形,以集合体的方式处理是比较合理的作法。 <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -