BBS水木清华站∶精华区

 
在 Emacs 中如何加入与显示文件 
 
     EMACS 允许输入文件时,将资料直接输入在  point 所在位置 
     的正前方,此方法称为  insert mode;或将输入的资料以覆盖的 
     方式取代  point 所在位置的字元,此方法则称为 overwrite mode。 
     现举一实例来说明 insert mode 与  overwrite mode 的异同。 
 
        o  字串 food,  point  所在位置为 d 处,此时的状态为 
                 insert mode。 
                在  point 所在的 d 处键入 t ,原字串变为 
                footd。 
        o  字串 food,  point  所在位置为 d 处,此时的状态为 
                 overwrite mode。 
                在  point 所在的 d 处键入 t ,原字串变为 
                foot。 
 
     EMACS 对输入模式的预设值是  insert mode,若想将模式转换成 
      overwrite mode, 
     指令 `` Meta-x overwrite-mode RET'' 可满足此一需求。若想恢复 
      insert mode,只需再使用一次 `` Meta-x overwrite-mode RET''就可以了 
     。当输入模式转为  overwrite mode 时,萤幕下方的  mode line 会显示 
      ``Ovwrt'' 的讯息,用以提示目前是使用 overwrite  的模式。 
     指令 `` Meta-x overwrite-mode''是用来转换 insert mode 与 
      overwrite mode 
     。在此前提下,原为  insert mode ,经转换 
     则为  overwrite mode。反之,若原为  overwrite mode 则转换成 
      insert mode。 
          EMACS 的  overwrite mode 只针对从键盘输入的文件有效, 
     若文件不是从键盘输入,而是以别的方式产生的,则一律失去 
     overwrite的效用。例如,拷贝而来的文件或以 `` Ctrl-x i'' 得来的文件, 
      EMACS 一律使用insert mode。 
          除了 insert 与 overwrite 的显示方法外, EMACS 还允许 
     使用者输入一些从键盘上无法输入的字,那就是一些控制码 
     和八进位超过 200 的字元。要输入这些特殊的文字时,只要在 
     这些字的前方加上 `` Ctrl-q''即可。例如,要输入分页码 
     (formfeed ,ASCII Ctrl-L, octal code 014), 
     则输入 ``Ctrl-q Ctrl-l'' 即可。此时萤幕会出现 C此时萤幕会出现 
     ^L 的符号。当输入文件的长度,超过 EMACS 视窗宽度所能显示 
     的□围,EMACS 对此情形的处理如下所示: 
 
        o  若文件太长需要换列时,在换列处键入 RET ,其後的文字 
          会自动转到下一列且以第一个栏位为新列的起始点。若其後没有 
          文件而键入 RET ,游标会会停在下一列的第一个栏位。 
        o  不理会文件是否会超过视窗的宽度,也就是不键入 RET 而 
          继续输入文字。 EMACS 会自动在视窗的最後加上 ``\'' ,而将其馀 
          的文字移至下一列;若下一列还是无法显示出所有的文字,会在 
          此列的最後再加上一个 ``~续将多馀的文字移至下一列。 EMACS 
          就是不断重复如此的动作,直到所有的文字都能完全显示出来为止。 
          所代表的意思与键入RET 并不相同。键入 RET 表示重新使用 
          一个新列;不键入 RET 而令 EMACS 自动加入所产生的文件, 
          仍代表著同一列,只是这一列太长, EMACS 无法以其视窗的 
          宽度来一次穷尽,必须分为数次来表示。 
        o  不键入 RET ,也不使 EMACS 自动产生 ,而使超过萤幕宽度 
          的部份暂时隐藏起来。EMACS 处理这种情形,是在视窗的最後 
          加上一个 ``$'' 。 ``$'' 表示其後的内容在视窗上暂时看不到, 
          但仍安在缓冲区内。EMACS 的基本预设是自动加入 ``\''。要使 
          多馀的文字隐藏起来,必须设定 ``truncate-lines'' 变数的值为正值。 
          变数设定的方法请参考  4.4 节。 
          4.4 节曾谈过一个视窗可以分成左右二个小视窗,此视窗可以 
          做水平的卷动,此情形下的视窗在处理太长的列时,就是将 
          truncate-line 变数的值设成正值,使超过宽度的文件隐藏起来。 
 
          前面所谈的都是「文字」的插入方式,但如何插入一个「非文字」 
     的空白列呢?在编辑的过程中,若想在某列之前加入一个新列, 
     只需将游标移至此列的最前端 
     ,随後再按下 RET 即可。此时 EMACS 会在游标所在处的前一列, 
     加入一空白列。 EMACS 为何要将空白列加在游标之前而不是游标 
     之後呢?因为将空白列加在游标之前,有一个最大好处,就是可以 
     很轻易的在缓冲区的最前端加入一个空白列。 
     此时所键入的 ``RET'' ,代表著 newline 。若不键入 RET, 也可以 
     使用 EMACS 所提供的 Hotkey ,也就是 Ctrl-j (tex-terminate-paragraph) 
     来获得新的一列。 

BBS水木清华站∶精华区