📄 00000003.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER> <BR>文件的取代 <BR> <BR>从事编辑工作的时候,常会为了某种需求而将某一共同的用语 <BR>以另外一种语辞替换,此情形最常发生在撰写程式的时候。 <BR>当然,英文字串由大写改为小写或小写改为大写也是经常可见的。 <BR>编辑文件在处理这些事时,就如如下的若干问题产生。 <BR> <BR> 1. 所有要修改的文件,都能如愿以偿的得到适当的修改,不会 <BR> 有漏网之鱼发生。 <BR> 2. 修改过文件的一致性,是必要的条件。 <BR> <BR>因为有这些问题的考量,所以使用 replacement 来完成如是的工作, <BR>就成为最佳的解决之道。现在就来谈谈 EMACS 如何处理 replacement <BR>的问题。 <BR> <BR>EMACS 处理 replacement 的方法有一气呵成的取代, <BR>与选择性的取代二种。 <BR>所给予的被取代文字也有二种, <BR>一、被取代的字串完全与所给予的字串一样; <BR>二、以 Regexp 来做为取代的依据。试分述之。 <BR> <BR> * 二种的取代方法 <BR> <BR> <BR> <BR> o 一气呵成的取代 <BR> 所谓一气呵成的取代,是一鼓作气将游标之後所有符合条件的 <BR> 字串,全部以新字串取而代之。 <BR> 此作法不会一一徵求是否要取而代之的意见,而是自动、全盘 <BR> 且无条件的取代。 <BR> 此作法称为 Unconditional Replacement。 <BR> <BR> o 选择性的取代 <BR> 选择性的取代,是会先徵求取代的意见,只有在取得同意权时, <BR> 才会采取取代的行动。这种取代的行为称为 query replacement。 <BR> <BR> <BR> * 二种被取代字串的表示法 <BR> <BR> <BR> <BR> o 被取代的字串完全与所给予的字串一样。 <BR> 此方法所要取代的文字,与 minibuffer 中所给予的文字一样。 <BR> 所以,其可能符合条件的选择最多也只有一种。 <BR> <BR> o Regexp 来做为取代的依据。 <BR> 此方法就是以 Regexp 来表示所要找寻的字串集。前已论及,所谓的 <BR> Regexp 就是以最少的字元组来表达最多的巨集。此时的取代, <BR> 就不是单一字串的取代而是某一集合中的所有字串的取代。 <BR> 所以,以此所得的取代字串就有多重的选择。如何表达正确的 Regexp <BR> 会在下一节中详细讨论。 <BR> <BR> <BR>以下就是使用取代( replacement)的方法。 <BR> <BR> * Unconditional Replace <BR> 进行取代时不事先徵求意见,迳行将缓冲区中游标所在位置(包括 <BR> 游标所在位置本身)之後,所有符合的字串都以新字串取而代之。 <BR> <BR> <BR> <BR> o ESC-x replace-string RET string RET newstring RET <BR> 此指令是将缓冲区中,所有出现 string 的字串以newstring 取代。 <BR> 其详细的步骤如下: <BR> <BR> <BR> <BR> 1. 键入 ``ESC-x replace-string'',当按下 RET 时, <BR> echo area 会出现 <BR> <BR> Replace string: <BR> <BR> 此时可利用 ``Replace string:'' 後的 minibuffer , <BR> 将所要被取代的字串输入,按下 RET 则表示已完成输入的工作 。 <BR> <BR> 2. 按下 RET 时, echo area 会出现如下讯息: <BR> <BR> Replace string string with: <BR> <BR> 此时可利用 minibuffer 给予所要取代的新字串。 键入 <BR> RET 时,游标所在位置之後的所有 string 都会转换成newstring。 <BR> <BR> 3. 当转换完成後, echo area 会出现 ``done''。此时就已 <BR> 大功告成了。 <BR> <BR> <BR> <BR> o ESC-x replace-Regexp RET Regexp RETnewstring RET <BR> 此方法与上一个方法雷同,不同之处在於所要取代的资料不是 <BR> 某一个特定的字串,而是某一巨集的字串组。从指令的表示法, <BR> 也可以看出所给予的被取代字串是 ``Regexp'' 而非 ``string''。 <BR> 其详细的执行步骤与字串的取代雷同,只是在 echo area 将所有 <BR> 的 string 换成 Regexp罢了。 <BR> <BR> <BR> * Query Replace <BR> Query Replace顾名思义就是在取代时会徵询取代的意见, <BR> 使用者可根据需要来取决是否要进行取代。以下就介绍字串和 <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -