'\" te .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved. .\" Copyright (c) 1989 AT&T .TH edit 1 "2004 年 6 月 11 日" "SunOS 5.11" "用户命令" .SH 名称 edit \- 文本编辑器(ex 的变体,面向偶尔使用的用户) .SH 用法概要 .LP .nf \fB/usr/bin/edit\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] [+\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... .fi .LP .nf \fB/usr/xpg4/bin/edit\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] [+\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... .fi .LP .nf \fB/usr/xpg6/bin/edit\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] [+\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... .fi .SH 描述 .sp .LP \fBedit\fR 实用程序是文本编辑器 \fBex\fR 的一个变体,推荐给新用户或者希望使用面向命令的编辑器的偶尔使用的用户使用。其运算精度与 \fBex\fR 相同,并且自动设置了以下选项: .sp .ne 2 .mk .na \fBnovice\fR .ad .RS 12n .rt \fBON\fR .RE .sp .ne 2 .mk .na \fBreport\fR .ad .RS 12n .rt \fBON\fR .RE .sp .ne 2 .mk .na \fBshowmode\fR .ad .RS 12n .rt \fBON\fR .RE .sp .ne 2 .mk .na \fBmagic\fR .ad .RS 12n .rt \fBOFF\fR .RE .sp .LP 以下简短介绍将帮助您开始使用 \fBedit\fR。如果您使用的是 \fBCRT\fR 终端,则可能需要学习显示编辑器 \fBvi\fR。 .sp .LP 要编辑现有文件的内容,要从 shell 命令 \fBedit \fR\fIname\fR 开始。\fBedit\fR 会生成一个随后可编辑的文件副本,并告诉您文件中的行数和字符数。要创建一个新文件,也可以用带文件名的 \fBedit\fR 命令开始:\fBedit \fR\fIname\fR;编辑器会告诉您这是一个 \fB[New File]\fR(新文件)。 .sp .LP \fBedit\fR 命令提示符是冒号 (\fB:\fR),在启动编辑器后就应看到该提示符。如果要编辑现有文件,则在 \fBedit\fR 的缓冲区中会有一些行(要编辑的文件副本的名称)。开始编辑时,\fBedit\fR 将使文件的最后一行成为当前行。如果不指定要使用的行,大多数 \fBedit\fR 命令将使用当前行。因此,如果输入 \fBprint\fR(可以缩写成 \fBp\fR)并键入回车(就像输入所有 \fBedit\fR 命令一样),就会输出当前行。如果删除 (\fBdelete\fR (\fBd\fR)) 当前行,\fBedit\fR 将输出新的当前行(通常是文件中的下一行)。如果删除 (\fBdelete\fR) 最后一行,则新的最后行将成为当前行。 .sp .LP 如果开始时使用空文件,或者希望增加一些新行,则可使用 \fBappend\fR (\fBa\fR) 命令。在执行了此命令(在字 \fBappend\fR 后键入回车)之后,\fBedit\fR 将从终端读取行,直到键入一个仅包含一个点 (\fB\&.\fR) 的行;该命令将这些行放在当前行之后。键入的最后一行随后会变成当前行。\fBinsert\fR (\fBi\fR) 命令与 \fBappend\fR 相似,但将键入的行放在当前行之前,而不是之后。 .sp .LP \fBedit\fR 实用程序会为缓冲区中的行编号,第一行的编号为 1。如果执行命令 \fB1\fR,则 \fBedit\fR 将键入缓冲区的第一行。如果随后执行命令 \fBd\fR,\fBedit\fR 将删除第一行,第二行成为第一行,\fBedit\fR 会输出当前行(新的第一行),使您知道所处的位置。一般而言,当前行始终是受命令影响的最后一行。 .sp .LP 您可以使用 \fBsubstitute\fR (\fBs\fR) 命令更改当前行中的某个文本:\fBs\fR/\fIold\fR /\fInew\fR/,其中 \fIold\fR 是要替换的字符串,\fInew\fR 是要用于替换 \fIold\fR 的字符串。 .sp .LP \fBfilename\fR (\fBf\fR) 命令会显示正在编辑的缓冲区中的行数,并在更改了缓冲区的情况下显示 \fB[Modified]\fR(已修改)。在修改了文件之后,可以通过执行 \fBwrite\fR (\fBw\fR) 命令保存文件的内容。可以通过发出 \fBquit\fR (\fBq\fR) 命令退出编辑器。如果对文件运行 \fBedit\fR,但不更改该文件,则不必将文件写回(这不会有害)\fB\fR。如果在修改了缓冲区后试图在不将其写出的情况下从 \fBedit\fR 退出 (\fBquit\fR),则将收到消息 \fBNo write since last change (:quit! overrides)\fR(自上次改变以后没写(:退出! 覆盖),\fBedit\fR 将等待另一个命令。如果您不想将缓冲区读出,可发出 \fBquit\fR 命令后跟一个感叹号 (\fBq!\fR)。缓冲区随后会被不可挽回地丢弃,您将返回到 shell。 .sp .LP 通过使用 \fBd\fR 和 \fBa\fR 命令并指定行号以查看文件中的行,可进行任何您需要的更改。但是,如果您多次使用 \fBedit\fR,则至少应再了解一些其他事情。 .sp .LP \fBchange\fR (\fBc\fR) 命令将当前行更改为您提供的一系列行(如同在 \fBappend\fR 中),您可以键入多个行,直到键入一个仅包含一个点 (\fB\&.\fR) 的行。通过指定要更改的行的行编号,可以让 \fBchange\fR 更改多个行,例如 \fB3,5c\fR。也可以通过此方式输出行:\fB1,23p\fR 输出文件的前 23 行。 .sp .LP \fBundo\fR (\fBu\fR) 命令撤消更改了缓冲区的最后执行的命令的效果。因此,如果执行 \fBsubstitute\fR 命令未达到预期效果,则可键入 \fBu\fR,恢复行原来的内容。也可以对 \fBundo\fR 命令执行 \fBundo\fR。当一个命令会影响缓冲区的多个行时,\fBedit\fR 将显示一条警告消息。请注意,\fBwrite\fR 和 \fBquit\fR 之类的命令不能撤消。 .sp .LP 要查看缓冲区中的下一行,可键入回车。要查看行数,请键入 \fB^D\fR(在按下 Ctrl 键的同时按 \fBd\fR),而不是回车。这将在 \fBCRT\fR 上显示半屏的行,或者在硬拷贝终端上显示 12 行。可以通过执行 \fBz\fR 命令查看附近的行。当前行出现在显示的文本中间,并且显示的最后一行成为当前行;可以通过键入 \fB\&''\fR 回到执行 \fBz\fR 命令之前所在的行。\fBz\fR 命令还有其他选项:\fBz-\fR 输出一屏文本(即 24 行),到您所在的位置结束;\fBz+\fR 输出下一个满屏。如果您需要不满屏的行,可键入 \fBz.11\fR 以显示当前行之前和之后的五行。(键入 \fBz.\fR\fIn\fR;当 \fIn\fR 是奇数时,总共显示 \fIn\fR 行,以当前行为中心;当 \fIn\fR 为偶数时,显示 \fIn\fR\fB-1\fR 行,从而使显示的行以当前行为中心。)可以在其他命令后跟一个计数;例如,可以使用命令 \fBd5\fR 删除从当前行开始的 5 行。 .sp .LP 要在文件中查找,并且您恰巧知道行号,则可使用行号;因为插入和删除行时行号会改变,因此这种方法不太可靠。可以在文件中向后和向前搜索字符串:用 /\fItext\fR/ 形式的命令可向前搜索 \fItext\fR,或者用 ?\fItext\fR? 形式的命令可向后搜索 \fItext\fR。如果搜索已到达文件末尾但未找到 \fItext\fR,将回头继续向后搜索到您所在的行。此处的一个有用功能是 /^\fItext\fR/ 形式的搜索,这将在行的开头搜索 \fItext\fR。类似地,/\fItext\fR$/ 在行的末尾搜索 \fItext\fR。在这些命令中,可以省略结尾 \fB/\fR 或 \fB?\fR。 .sp .LP 当前行的符号名称是点 (\fB\&.\fR);这个名称在一个行范围中很有用,例如在 \fB\&.,$p\fR 中会输出当前行以及文件中的其余行。要移到文件中的最后一行,可以用其符号名称 $ 引用它。因此,不管当前行是什么,命令 \fB$d\fR 都会删除文件中的最后一行。还可以使用行引用进行算术运算。因此,行 \fB$\fR\fB-5\fR 是最后一行之前的第五行,\fB\&.+20\fR 是当前行之后的 20 行。 .sp .LP 可以通过键入 \fB`.='\fR 找出当前行。如果希望在一个文件中或者文件之间移动或复制一部分文本,可使用此方法。查找您要复制或移动的第一个行编号和最后一个行编号。要移动第 10 行到第 20 行,可键入 \fB10,20d a\fR 从文件中删除这些行,并将它们放在名为 \fBa\fR 的缓冲区中。\fBedit\fR 有 26 个这样的缓冲区,分别命名为 \fBa\fR 到 \fBz\fR。要将缓冲区 \fBa\fR 的内容放在当前行之后,可键入 \fBput a\fR。如果要将这些行移动或复制到另一个文件,可在复制这些行之后执行 \fBedit\fR (\fBe\fR) 命令;在 \fBe\fR 命令后跟要编辑的另一个文件的名称,即 \fBedit chapter2\fR。要在不删除行的情况下复制行,可使用 \fByank\fR (\fBy\fR) 替代 \fBd\fR。如果要移动或复制的文本都在一个文件中,则不必使用命名的缓冲区。例如,要将第 10 行到第 20 行移到文件末尾,可键入 \fB10,20m $\fR。 .SH 选项 .sp .LP 可以在 \fBex\fR(1) 中使用 \fBset\fR 命令启用或禁用这些选项。 .sp .ne 2 .mk .na \fB\fB-C\fR\fR .ad .RS 25n .rt 加密选项;与 \fB-x\fR 选项相同,但 \fBvi\fR 模拟 \fBex\fR 的 \fBC\fR 命令。\fBC\fR 命令与 \fBex\fR 的 \fBX\fR 命令相似,但所有读入的文本都假设已加密。 .RE .sp .ne 2 .mk .na \fB\fB-l\fR\fR .ad .RS 25n .rt 为编辑 LISP 程序进行设置。 .RE .sp .ne 2 .mk .na \fB\fB-L\fR\fR .ad .RS 25n .rt 列出作为编辑器结果或系统崩溃结果保存的所有文件的名称。 .RE .sp .ne 2 .mk .na \fB\fB-R\fR\fR .ad .RS 25n .rt \fBReadonly\fR 模式;设置 \fBreadonly\fR 标志,防止意外覆盖文件。 .RE .sp .ne 2 .mk .na \fB\fB-r\fR\fI filename\fR\fR .ad .RS 25n .rt 在编辑器或系统崩溃后编辑 \fIfilename\fR。(在发生崩溃时恢复缓冲区中的 \fIfilename\fR 版本。) .RE .sp .ne 2 .mk .na \fB\fB-t\fR\fI tag\fR \fR .ad .RS 25n .rt 编辑包含 \fItag\fR 的文件,并将编辑器定位在其定义的位置。 .RE .sp .ne 2 .mk .na \fB\fB-v\fR\fR .ad .RS 25n .rt 使用 \fBvi\fR 以显示编辑状态启动。可以通过直接键入 \fBvi\fR 命令本身获得相同的效果。 .RE .sp .ne 2 .mk .na \fB\fB-V\fR\fR .ad .RS 25n .rt 详细模式。通过标准输入读取 \fBex\fR 命令时,输入会回显到标准错误。这在处理 shell 脚本内的 \fBex\fR 命令时可能有用。 .RE .sp .ne 2 .mk .na \fB\fB-x\fR\fR .ad .RS 25n .rt 加密选项;使用此选项时,\fBedit\fR 将模拟 \fBex\fR 的 \fBX\fR 命令,并提示用户输入密钥。此密钥用于使用 \fBcrypt\fR 命令的算法对文本进行加密和解密。\fBX\fR 命令会据理推测以确定读入的文本是否加密。临时缓冲区文件也会加密,使用的是为 \fB-x\fR 选项键入的经过转换的密钥版本。 .RE .sp .ne 2 .mk .na \fB\fB-w\fR\fIn\fR\fR .ad .RS 25n .rt 将缺省窗口大小设置为 \fIn\fR。在通过低速线路使用编辑器时,这很有用。 .RE .sp .ne 2 .mk .na \fB\fB+\fR\fIcommand\fR | \fB-c\fR\fI command\fR\fR .ad .RS 25n .rt 开始编辑时执行指定的编辑器 \fBcommand\fR(通常是搜索或定位命令)。 .RE .sp .ne 2 .mk .na \fB\fB-\fR | \fB-s\fR \fR .ad .RS 25n .rt 抑制所有交互式用户反馈。这在处理编辑器脚本时很有用。 .RE .sp .LP \fIfilename\fR 参数指示一个或多个要编辑的文件。 .SH 属性 .sp .LP 有关下列属性的说明,请参见 \fBattributes\fR(5): .SS "/usr/bin/edit" .sp .sp .TS tab() box; lw(2.75i) lw(2.75i) lw(2.75i) lw(2.75i) . 属性类型\fB\fR属性值\fB\fR 可用性system/core-os CSIEnabled(已启用) .TE .SS "/usr/xpg4/bin/edit" .sp .sp .TS tab() box; lw(2.75i) lw(2.75i) lw(2.75i) lw(2.75i) . 属性类型\fB\fR属性值\fB\fR 可用性system/xopen/xcu4 CSIEnabled(已启用) .TE .SS "/usr/xpg6/bin/edit" .sp .sp .TS tab() box; lw(2.75i) lw(2.75i) lw(2.75i) lw(2.75i) . 属性类型\fB\fR属性值\fB\fR 可用性system/xopen/xcu6 CSIEnabled(已启用) .TE .SH 另请参见 .sp .LP \fBed\fR(1)、\fBex\fR(1)、\fBvi\fR(1)、\fBattributes\fR(5)、\fBXPG4\fR(5) .SH 附注 .sp .LP 加密选项是随 "Security Administration Utilities"(安全管理实用程序)软件包提供的;该软件包仅在美国可用。