BBS水木清华站∶精华区
图形的编辑
EMACS 的绘图模式所能提供的绘图功能并不多,它只予许以键盘
上出现的字元,来构思图形,也就是只能以 ASCII 的字元,
来编辑所要的图形。EMACS 的图形模式可以与任何其它的模式
一起搭配使用。所以,只要有编辑图形的需要,都可以切换至
图形模式,将所要的图形编辑出来。
EMACS 的绘图功能,主要是由八个控制游标移动方向
的指令来完成。这八个方向也是EMACS 构图的主体,
它们依序是,东、南、西、北、东南、西南、西北以及东北。
虽然可以设定八种游标移动的方向,但一次只能设定一个方向,
若想使游标移动的方向改变,必需重新设定游标移动的方向。
设定这八个游标移动方向的指令分别是:
* 东: Ctrl-c > (picture-movement-right)
* 西: Ctrl-c < (picture-movement-left)
* 南: Ctrl-c . (picture-movement-down )
* 北: Ctrl-c ^ (picture-movement-up)
* 东南: Ctrl-c \ (picture-movement-se)
* 西南: Ctrl-c / (picture-movement-sw)
* 东北: Ctrl-c ' (picture-movement-ne)
* 西北: Ctrl-c ` (picture-movement-nw)
这八个指令似乎颇为复杂,但如配合图形的解释,就可了
这八个指令的由来。因为,每个指令的表示法与所要表达的方向
有著密切关系。
北(rignt)
C-c ^
.
西北(nw) . 东北(ne)
C-c ` . C-c '
. . .
. . .
. . .
...
C-c < ................... C-c >
西(left) ... 东(right)
. . .
. . .
. . .
C-c / . C-c \
西南(sw) . 东南(se)
.
C-c .
南(down)
从以上的图示,不知能否看出这八个控制方向的指令与所表达
的方向有著密不可分的关连性。例如,往东的方向则以 「>」来表示,
往西的方向则以 「<」,往北的方向则以 「^」 来表示等等。
基本上,从使用的指令就可知道所代表的方向为何。当然,其原意
并不是要以指令来猜方向,而是用方向来诠释指令。所以,只要
掌握西南方的方向,就知道使用 「/」 来表示。
图形模式可以在编辑的过程中随时使用的。使用图形模式的
方法很简单,只要将其唤起即可。唤起图形模式的方法是:
`` ESC-x edit-picture''。
当进入图形模式後, mode line 会将使用图形模式的讯息
显示出来。进入图形模式後,也可以随时离开此模式,而回到
唤起此模式前的状态。回到先前模式的方法是`` Ctrl-c Ctrl-c。
进入图形模式後,就可利用设定游标移动方向的八个指令,
来控制输入字元出现的方向,而绘制出合适的图样。当选定了
游标的移动方向後, mode line 会将游标移动的方向显示出来。
此时,键入任何一个键盘上的字元,字元会依照所设定的方向出现在萤幕上。
图形模式所采用的是覆盖模式,这是有其道理的。绘图就是
要在特定的地方绘上所欲的图样,如果使用插入的模式,就会破坏整体
的设计。所以,使用覆盖模式是较合理的安排。
图形模式除了设定游标移动方向的指令外,还有其它的指令
是针对编辑功能而设。例如,字或列的删减,空白列的增加等等,
都是在绘图时,不可或缺的编辑指令。现在就来讨论与绘图有关
的编辑指令。绘图的编辑指令与一般编辑的指令大同小异,
为了避免将一般的编辑指令与绘图时所使用的编辑指令混淆,
现将二者的差异整理列举如下:
Keystrokes Text Mode Picture Mode
RET 加入一行空白列 使游标向下移动,若要加入空白列,
则使 用 ``Ctrl-o'' 指令。
将游标所在处的字元以空白取代,
Ctrl-d 删除一个字元後,文件会向 但文件不会向左移动。若要删除字元,必
左移动 需使用
"Ctrl-c Ctrl-d" 指令。
游标向右移动,同时游标所到之处,均将
SPACE 输入空白且将文件移向右边 文字以空白覆盖。此时若想输入空白,则
必需回到 Text Mode,在text Mode
的状态输入空白 。
删除所在列的内容,使用两
Ctrl-k 次 删除内容但不会删除列。欲删除列只有
Ctrl-k 则删除内容与此空 回到 Text Mode
白列。
TAB 输入 TABs 且将文件向右移 只以TAB 的距离移动游标,但它所经过之
动 处并不会输入 TABs 。
游标移至下一列,但游标所
Ctrl-n 在的栏 游标移至下一列,但栏位与上一列相同。
位则视情形而定。
游标移至上一列,但游标所
Ctrl-p 在的栏 游标移至上一列,但栏位与下一列相同。
位则视情形而定。
Ctrl-f 游标向前移动一个字元。 游标向右移动一个字元。
Ctrl-b 游标往回移动一个字元。 游标向左移动一个字元。
除了以上所谈的种种功能之外,图形模式亦可与长方形
编辑相配合。长方形编辑是专用来编辑区块文件,而图形模式
的编辑,从某个角度来看,就是区块的组合。所以,长方形编辑
的运作,就可用在图形模式的剪贴上。因此,任何可以使用在
长方形编辑的指令,都可用在图形模式中。不熟悉长方形的编辑者,
可参考本文的 5.4 节。
图形模式除了可使用长方形编辑的指令外,图形模式
本身,也提供了适用於此模式的专门指令。现就一一为各位介绍。
* 可利用的长方形编辑指令,如下:
o Ctrl-x r d(delete-rectangle)
删除设定好的长方形区块内的文件,经删除後的文件无法再将其
yank 出来。除非是执行 undo 的指令。
o Ctrl-x r k(kill-rectangle)
与图形模式 `` Ctrl-c Ctrl-k'' 的作用相同。
o Ctrl-x r y (yank-rectangle)
与图形模式 `` Ctrl-c Ctrl-y'' 的作用相同。
o Ctrl-x r o (open-rectangle)
在设定好的长方形区块内,插入空白後使文件向右移动。
o Ctrl-x r r r (copy-rectangle-to-register)
将设定好□围的区块资料,存入 register 中,
此时区块内的资料并不会消失。
o Ctrl-x r i r (insert-register)
将存入 register 中的资料取出。
o ESC-x clear-rectangle
将设定好的长方形区块内的文件以空白取代。
o ESC-x string-rectangle RET string RET
设定好的长方形区块插入新的字串( string)。此时的
区块只决定加入新字串的长度,宽度则由所给予的字串长度
来决定。原来区块内的文件会向右移动。
* 图形模式自行开发的编辑指令,如下:
o Ctrl-c Ctrl-k(picture-clear-rectangle)
长方形指令 `` Ctrl-x r k" 与此指令具有相同的效果。
此指令经常被使用,所以将长方形的指令予以精简,使其在
图形模式中更易於被使用
o Ctrl-c Ctrl-y(picture-yank-rectangle)
长方形指令 `` Ctrl-x r y'' 与此指令具有相同的效果。此指令经常
被使用,所以将长方形的指令予以精简,使其在图形模式中更
易於被使用。
o Ctrl-c Ctrl-w r (picture-clear-rectangle-to-register)
将区块内的资料存入 register 中。此时区块内的资料会以空白
取代,这是与长方形指令 `` Ctrl-x r r r 最大不同之处。
o Ctrl-c Ctrl-x r (picture-yank-rectangle-from-register)
将存入 register r 中的资料取出。
长方形指令的使用在图形模式中非常有用。因为,图形的构成就是
一块块的区域。所以善用长方形指令会使图形的编辑更加灵活。
BBS水木清华站∶精华区