⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000006.htm

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -