edit 命令
用途
给新用户提供一种简单的行编辑器。
语法
编辑 [ -r ] [ 文件 ... ]
描述
edit File当 File 参数指定的是一个存在的文件时,edit 命令将该文件复制到缓冲区并显示文件中的行数和字符数。 然后它显示 :(冒号)提示符来指示它准备从标准输入中读取子命令。
如果 File 参数中指定的文件尚未存在 edit 命令提示该信息并新建文件。 您可以为 File 参数指定一个以上的文件名,在这种情况下 edit 命令将第一个文件拷入缓冲区,并将剩余的文件名储存在变量列表中以备将来使用。 如果您不用 w 子命令做出更改的话,edit 编辑器不会更改编辑的文件。
edit 编辑器以下面的两种方式之一进行操作:
标志
| 项 | 描述 |
|---|---|
| -r | 在编辑器或系统故障后恢复正在编辑的文件。 |
在文件中寻址行
edit 编辑器使用下面的三种寻址类型:
行号地址
行号寻址是利用行号或符号名称在文件找出某一行。 这种方法是找到某一行或某些行的最简单方式。
.$您也可以通过用逗号或分号将行号或符号地址分开,以此指定某个范围的行。 第二个地址必须指向该范围第一个地址行后面的行。
1,5.,$寻址第一行到最后几行。
相对位置寻址
edit 编辑器可以通过某一行与当前行的相对位置找到该行的地址。 以 -Number 或 +Number 参数开头的地址分别指向当前行之前第某行或之后第某行。
+8寻址当前行之后第 8 行。
您也可以利用符号名称结合 -Number 或 +Number 的地址来找到相对于第一行或最后一行的某一行。
.+3$-10寻址最后一行之前 10 行。
模式地址
您可以通过在缓冲区中搜索某个特殊的模式来指定寻址行。 edit 编辑器向前或向后搜索,并停止在第一次遇到的、含有与 Pattern 参数匹配内容的行的地方。 如有必要,该搜索折回缓冲区的结束或起始位置,直到它找到匹配的对象或是返回到当前行。
/Pattern/?Pattern?您也可以将 Pattern 参数用逗号或者分号来分开,以此指定某个范围内的行。 第二个地址必须指向该范围第一个地址行后面的行。
Pattern,Pattern当被用作 Pattern 参数的一部分时,下面的字符具有特殊的意义:
| 项 | 描述 |
|---|---|
| ^ | 作为 Pattern 参数的第一个字符时,与行的开始相匹配。 |
| $ | 作为 Pattern 参数的最后一个字符时,与行的结尾相匹配。 |
使用 edit 编辑器子命令
edit 编辑器子命令会影响由 .(句点) :NONE. 当您启动 edit 编辑器时,当前行是缓冲区中的最后一行。 随着缓冲区被编辑,当前行变为最近一次被子命令所作用的行。 要使用文件的不同部分,您必须知道如何在文件中使用 查找当前行 和 如何处理不同行 。
您可以利用 edit 编辑器的子命令执行下面的任务:
- 添加文本
- 正在更改当前文件的名称
- 更改文本
- 删除文本
- 正在显示当前文件名和状态
- 显示文本并查找当前行
- 编辑其他的文件
- 结束并退出编辑编辑器
- 进行全局更改
- 移动或复制文本
- 在系统崩溃后保存文件
- 保存文本
- 替换文本
- 正在撤销更改
添加文本
在下面的子命令中,参数 Address 是可选的。 如果您指定了地址,不要输入括号。 您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
[地址]追加 (A) 文本 . |
如果您没有指定 Address 参数,请附上您在当前行后面输入的文本。 如果您在缓冲区中未处于正确的位置,那么可能需要 查找当前行 或 指定地址 。 如果您指定了地址,子命令 a 就将文本附加在指定的行之后。 如果您指定地址 0,子命令 a 就将文本放置在缓冲区的起始位置。 输入文本,并在每一行的末尾处按 Enter 键。 当您输完所有文本时,在行的起始处输入单独的一个 . (句点),以结束文本输入方式并返回命令方式。 您可以使用子命令 1,$p 来显示缓冲区中的所有内容。 注: A 子命令在文本的位置方面与 一 子命令不同。
|
[地址]插入 (一)文本. |
如果您不指定参数 Address,那么在当前行之前插入文本。 如果您在缓冲区中未处于正确的位置,那么可能需要 查找当前行 或 指定地址 。 如果您指定地址,子命令 i 就在指定的行之前插入文本。 您不能指定地址 0。 输入您的文本,并在每一行的末尾按 Enter 键。 当输入所有文本后,请仅在一行的开头输入 . (句点),以结束文本输入方式并返回命令方式。 您可以使用子命令 1,$p 来显示缓冲区中的所有内容。 注: 一 子命令在文本的位置方面与 A 子命令不同。
|
更改当前文件的文件名
| 项 | 描述 |
|---|---|
| 文件 文件 | 将当前文件的文件名改为参数 File 所指定的文件名。 edit 编辑器不会认为该文件要被编辑。 |
更改文本
在下面的子命令中,参数 Address 是可选的。 如果您指定了地址,不要输入括号。 您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
[Address1,Address2]更改 (c)。 文本 |
如果您不指定参数 Address,那么用您输入的文本替换当前行。 如果您在缓冲区中未处于正确的位置,那么可能需要 查找当前行 或 指定地址 。 如果您指定地址,子命令 c 将替换指定的某行或某几行。 您可以通过用逗号将地址分开,以指定某个范围的行。 输入您的文本,并在每一行的末尾按 Enter 键。 当输入所有文本后,请仅在一行的开头输入 . (句点),以结束文本输入方式并返回命令方式。 您可以使用子命令 1,$p 来显示缓冲区中的所有内容。 最后输入的行成为当前行。 |
删除文本
在下面的子命令中,参数 Address 和参数 Buffer 是可选的。 如果您指定地址或缓冲区,不要输入括号。 您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
| [Address1,Address2] 删除 [Buffer] (d) | 如果您不指定参数 Address,那么删除当前行。 如果您在缓冲区中未处于正确的位置,那么可能需要 查找当前行 或 指定地址 。 如果您指定地址,子命令 d 就删除指定的某行或某些行。 您可以通过用逗号将地址分开,以指定某个范围的行。 最后删除的行之后的行就成为当前行。 如果您用从 a 到 z 的一个小写字母来指定一个缓冲区 edit 编辑器就将指定的几行保存在该缓冲区中。 如果您用大写字母指定该缓冲区 edit 编辑器就将这些行添加到该缓冲区中。 您可以使用 浦 子命令将已删除的行放回到缓冲区中。 |
显示当前文件的文件名和状态
在下面的子命令中,您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
| 文件 (F) | 显示当前文件名称以及下面的相关信息:
|
显示文本并查找当前行
在下面的子命令中,参数 Address 是可选的。 如果您指定了地址,不要输入括号。 您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
| [Address1,Address2]编号 (nu) | 显示指定在它的缓冲区行号之后的行或几行。 如果您没有指定参数 Address,子命令 nu 就显示当前行和行号。 如果您指定了地址,子命令 nu 就显示指定的某行或某几行。 您可以通过用逗号将地址分开,以指定某个范围的行。 所显示的最后一行成为当前行。 |
| [Address1,Address2]print (p) | 显示指定的某行或某几行。 如果您不指定参数 Address,子命令 p 显示当前行。 如果您指定地址,子命令 p 就显示指定的某行或某几行。 您可以通过用逗号将地址分开,以指定某个范围的行。 所显示的最后一行成为当前行。 |
| [地址]= | 显示指定行的行号。 如果您没有指定参数 Address,子命令 = 显示当前行的行号。 |
| [地址]Z | 从指定的行开始,显示一屏幕文本。 如果不指定参数 Address,子命令 z 从当前行开始,显示一屏幕文本。 |
| [地址]z- | 显示一屏幕文本,并且指定的行位于底部。 如果不指定参数 Address,子命令 z- 就显示一屏幕文本,并且当前行在最底。 |
| [地址]兹 | 显示一屏幕文本,并且指定的行位于中央。 如果未指定 地址 参数,那么将显示 兹 子命令显示一个当前行位于中间的文本屏幕。 |
编辑另外的文件
在下面的子命令中,您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
| 编辑 文件 (E) | 在参数 File所指定的新文件上开始一个编辑会话。 编辑器首先检查自最后一个 写 (w) 子命令以来是否已编辑该缓冲区。 如果自从最后一个 w 子命令以来该文件已被编辑,该 edit 编辑器就发出一个警告并取消子命令 e。 否则 edit 编辑器删除编辑器缓冲区的内容,让指定的文件成为当前文件,并显示新的文件名。 在确保该文件可以被编辑后 edit 编辑器将该文件读入编辑器的缓冲区。 如果 edit 编辑器读取文件时未出错,它就显示它所读取的行数和字符数。 最后读取的行成为新的当前行。 |
| 下一个 (N) | 将命令行参数表中指定的下一个文件复制到缓冲区中进行编辑。 |
结束并退出 edit 编辑器
在下面的子命令中,您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
| 退出 (Q) | 使用 写 (w) 子命令后结束编辑会话。 如果您修改了缓冲区并且未将更改写入磁盘,edit 编辑器就显示一条警告消息,并且不结束该编辑回话。 |
| 退出! (q! ) | 结束编辑回话,废弃从最后一个 w 子命令以来对该缓冲区所做出的任何更改。 |
进行全局修改
在下面的子命令中,参数 Address 是可选的。 如果您指定了地址,不要输入括号。 您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
| [ 地址1 , 地址2 ] 全局/ 模式 / 子命令列表 ( g ) | 给与参数 Pattern 匹配的指定行做标记。 然后 edit 编辑器对标记过的每一行都执行参数 SubcommandList 中指定的子命令列表。 如果您不指定参数 Address,子命令 g 就作用于当前行。 如果您在缓冲区中未处于正确的位置,那么可能需要 查找当前行 或 指定地址 。 如果您指定了地址,子命令 g 就作用于指定的某行或某几行。 您可以通过用逗号将地址分开,以指定某个范围的行。 单独一条子命令或子命令列表中第一条子命令与子命令 g 出现在相同的行。 剩下的子命令必须出现在不同的行,并且每一行都(除了最后一行)以 \(反斜杠)结尾。 缺省子命令是 打印 (p) 子命令。 子命令列表可以包含 追加 (a) 子命令, 插入 (i) 子命令和 变更 (c) 子命令及其相关输入。 在这种情况下,表示结束的句号如果位于该命令列表的最后一行,就可以省略。 注: 撤销 (u) 子命令和 G 子命令不能出现在子命令列表中。
|
移动或复制文本
在下面的子命令中,参数 Address1 和参数 Address2 是可选的。 如果您指定了地址,不要输入括号。 您必须指定参数 Address3。 您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
| [Address1,Address2]移动 Address3 (M) | 如果您不指定地址或是地址范围,那么将当前行移到参数 Address3 所指定的行之后。 如果您在缓冲区中未处于正确的位置,那么可能需要 查找当前行 或 指定地址 。 如果您指定地址,子命令 m 就移动指定的一行或几行。 您可以通过用逗号将地址分开,以指定某个范围的行。 移动的行的第一行成为当前行。 |
| [Address1,Address2]yank [Buffer] (ya) | 将指定的一行或多行复制到 缓冲区中,这是由单个字母字符 a 到 z 指定的可选参数。 您可以使用 浦 子命令将这些行放入另一个文件中。 |
| [地址]放 [缓冲区] (浦) | 检索指定的参数 Buffer 的内容,如果您没有指定地址,那么将其放置到当前行之后。 如果您在缓冲区中未处于正确的位置,那么可能需要 查找当前行 或 指定地址 。 如果指定地址,那么 浦 子命令将检索指定缓冲区的内容并将其放置在指定的行之后。 如果您没有指定参数 Buffer,子命令 pu 恢复最近一次删除或拷贝的文本。 您可以将 浦 子命令与 删除 (d) 子命令一起使用以在文件中移动行,或者将 Yank (ya) 子命令一起使用以在文件之间复制行。 在宏的内部,您不能使用子命令 pu 和子命令 ya。 |
在系统发生故障之后保存文件
| 项 | 描述 |
|---|---|
| preserve | 保存当前编辑器缓冲区,仿佛系统刚刚崩溃一样。 当 写 (w) 子命令导致错误并且您不知道如何保存您的工作时,请使用此子命令。 请使用子命令 recover 来恢复该文件。 |
| recover 文件 | 从系统保存区域中恢复参数 File 所指定的文件。 请在系统崩溃或者子命令 preserve 之后使用该子命令。 |
保存文本
在下面的子命令中,参数 Address 是可选的。 如果您指定了地址,不要输入括号。 您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
| [Address1,Address2]write [File] (w) | 如果您没有指定地址,那么将缓冲区的所有内容写到参数 File所指定的文件中。 如果您指定了地址,子命令 w 就将指定的一行或几行写到指定的文件中。 您可以通过用逗号将地址分开,以指定某个范围的行。 edit 编辑器显示它所写入的行数和字符数。 如果您没有指定文件 edit 编辑器就使用当前的文件名。 如果参数 File 不存在,该编辑器就创建一个。 |
替换文本
在下面的子命令中,参数 Address 是可选的。 如果您指定了地址,不要输入括号。 您可以使用完整的子命令,或是其缩写(显示在括号中)。
| 项 | 描述 |
|---|---|
[Address1,Address2] 替换/模式/替换/ (s) [Address1,Address2] 替换/模式/替换/g |
在每个指定的行上,替换指定的参数 Pattern的第一个实例。 您可以通过将 全局 (g) 子命令添加到 S 子命令的末尾来替换 模式 参数的每个实例。 如果您不指定地址,子命令 s 就作用于当前行。 如果您在缓冲区中未处于正确的位置,那么可能需要 查找当前行 或 指定地址 。 如果您指定了地址,子命令 s 就作用于指定的一行或几行。 您可以通过用逗号将地址分开,以指定某个范围的行。 |
撤销更改
在下面的子命令中,您可以使用完整的子命令,或是其缩写(显示在括号中)。