手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

edit(1)

名称

edit - 文本编辑器(ex 的变体,面向偶尔使用的用户)

用法概要

/usr/bin/edit [-| -s] [-l] [-L] [-R] [-r [filename]] 
     [-t tag] [-v] [-V] [-x] [-wn] [-C] 
     [+command | -c command] filename...
/usr/xpg4/bin/edit [-| -s] [-l] [-L] [-R] [-r [filename]] 
     [-t tag] [-v] [-V] [-x] [-wn] [-C] 
     [+command | -c command] filename...
/usr/xpg6/bin/edit [-| -s] [-l] [-L] [-R] [-r [filename]] 
     [-t tag] [-v] [-V] [-x] [-wn] [-C] 
     [+command | -c command] filename...

描述

edit 实用程序是文本编辑器 ex 的一个变体,推荐给新用户或者希望使用面向命令的编辑器的偶尔使用的用户使用。其运算精度与 ex 相同,并且自动设置了以下选项:

novice

ON

report

ON

showmode

ON

magic

OFF

以下简短介绍将帮助您开始使用 edit。如果您使用的是 CRT 终端,则可能需要学习显示编辑器 vi

要编辑现有文件的内容,要从 shell 命令 edit name 开始。edit 会生成一个随后可编辑的文件副本,并告诉您文件中的行数和字符数。要创建一个新文件,也可以用带文件名的 edit 命令开始:edit name;编辑器会告诉您这是一个 [New File](新文件)。

edit 命令提示符是冒号 (:),在启动编辑器后就应看到该提示符。如果要编辑现有文件,则在 edit 的缓冲区中会有一些行(要编辑的文件副本的名称)。开始编辑时,edit 将使文件的最后一行成为当前行。如果不指定要使用的行,大多数 edit 命令将使用当前行。因此,如果输入 print(可以缩写成 p)并键入回车(就像输入所有 edit 命令一样),就会输出当前行。如果删除 (delete (d)) 当前行,edit 将输出新的当前行(通常是文件中的下一行)。如果删除 (delete) 最后一行,则新的最后行将成为当前行。

如果开始时使用空文件,或者希望增加一些新行,则可使用 append (a) 命令。在执行了此命令(在字 append 后键入回车)之后,edit 将从终端读取行,直到键入一个仅包含一个点 (.) 的行;该命令将这些行放在当前行之后。键入的最后一行随后会变成当前行。insert (i) 命令与 append 相似,但将键入的行放在当前行之前,而不是之后。

edit 实用程序会为缓冲区中的行编号,第一行的编号为 1。如果执行命令 1,则 edit 将键入缓冲区的第一行。如果随后执行命令 dedit 将删除第一行,第二行成为第一行,edit 会输出当前行(新的第一行),使您知道所处的位置。一般而言,当前行始终是受命令影响的最后一行。

您可以使用 substitute (s) 命令更改当前行中的某个文本:s/old /new/,其中 old 是要替换的字符串,new 是要用于替换 old 的字符串。

filename (f) 命令会显示正在编辑的缓冲区中的行数,并在更改了缓冲区的情况下显示 [Modified](已修改)。在修改了文件之后,可以通过执行 write (w) 命令保存文件的内容。可以通过发出 quit (q) 命令退出编辑器。如果对文件运行 edit,但不更改该文件,则不必将文件写回(这不会有害)。如果在修改了缓冲区后试图在不将其写出的情况下从 edit 退出 (quit),则将收到消息 No write since last change (:quit! overrides)(自上次改变以后没写(:退出! 覆盖),edit 将等待另一个命令。如果您不想将缓冲区读出,可发出 quit 命令后跟一个感叹号 (q!)。缓冲区随后会被不可挽回地丢弃,您将返回到 shell。

通过使用 da 命令并指定行号以查看文件中的行,可进行任何您需要的更改。但是,如果您多次使用 edit,则至少应再了解一些其他事情。

change (c) 命令将当前行更改为您提供的一系列行(如同在 append 中),您可以键入多个行,直到键入一个仅包含一个点 (.) 的行。通过指定要更改的行的行编号,可以让 change 更改多个行,例如 3,5c。也可以通过此方式输出行:1,23p 输出文件的前 23 行。

undo (u) 命令撤消更改了缓冲区的最后执行的命令的效果。因此,如果执行 substitute 命令未达到预期效果,则可键入 u,恢复行原来的内容。也可以对 undo 命令执行 undo。当一个命令会影响缓冲区的多个行时,edit 将显示一条警告消息。请注意,writequit 之类的命令不能撤消。

要查看缓冲区中的下一行,可键入回车。要查看行数,请键入 ^D(在按下 Ctrl 键的同时按 d),而不是回车。这将在 CRT 上显示半屏的行,或者在硬拷贝终端上显示 12 行。可以通过执行 z 命令查看附近的行。当前行出现在显示的文本中间,并且显示的最后一行成为当前行;可以通过键入 '' 回到执行 z 命令之前所在的行。z 命令还有其他选项:z− 输出一屏文本(即 24 行),到您所在的位置结束;z+ 输出下一个满屏。如果您需要不满屏的行,可键入 z.11 以显示当前行之前和之后的五行。(键入 z.n;当 n 是奇数时,总共显示 n 行,以当前行为中心;当 n 为偶数时,显示 n–1 行,从而使显示的行以当前行为中心。)可以在其他命令后跟一个计数;例如,可以使用命令 d5 删除从当前行开始的 5 行。

要在文件中查找,并且您恰巧知道行号,则可使用行号;因为插入和删除行时行号会改变,因此这种方法不太可靠。可以在文件中向后和向前搜索字符串:用 /text/ 形式的命令可向前搜索 text,或者用 ?text? 形式的命令可向后搜索 text。如果搜索已到达文件末尾但未找到 text,将回头继续向后搜索到您所在的行。此处的一个有用功能是 /^text/ 形式的搜索,这将在行的开头搜索 text。类似地,/text$/ 在行的末尾搜索 text。在这些命令中,可以省略尾随的 /?

当前行的符号名称是点 (.);这个名称在一个行范围中很有用,例如在 .,$p 中会输出当前行以及文件中的其余行。要移到文件中的最后一行,可以用其符号名称 $ 引用它。因此,不管当前行是什么,命令 $d 都会删除文件中的最后一行。还可以使用行引用进行算术运算。因此,行 $–5 是最后一行之前的第五行,.+20 是当前行之后的 20 行。

可以通过键入 `.='  找出当前行。如果希望在一个文件中或者文件之间移动或复制一部分文本,可使用此方法。查找您要复制或移动的第一个行编号和最后一个行编号。要移动第 10 行到第 20 行,可键入 10,20d a 从文件中删除这些行,并将它们放在名为 a 的缓冲区中。edit 有 26 个这样的缓冲区,分别命名为 az。要将缓冲区 a 的内容放在当前行之后,可键入 put a。如果要将这些行移动或复制到另一个文件,可在复制这些行之后执行 edit (e) 命令;在 e 命令后跟要编辑的另一个文件的名称,即 edit chapter2。要在不删除行的情况下复制行,可使用 yank (y) 替代 d。如果要移动或复制的文本都在一个文件中,则不必使用命名的缓冲区。例如,要将第 10 行到第 20 行移到文件末尾,可键入 10,20m $

选项

可以在 ex(1) 中使用 set 命令启用或禁用这些选项。

–C

加密选项;与 –x 选项相同,但 vi 模拟 exC 命令。C 命令与 exX 命令相似,但所有读入的文本都假设已加密。

–l

为编辑 LISP 程序进行设置。

–L

列出作为编辑器结果或系统崩溃结果保存的所有文件的名称。

–R

Readonly 模式;设置 readonly 标志,防止意外覆盖文件。

–r filename

在编辑器或系统崩溃后编辑 filename。(在发生崩溃时恢复缓冲区中的 filename 版本。)

–t tag

编辑包含 tag 的文件,并将编辑器定位在其定义的位置。

–v

使用 vi 以显示编辑状态启动。可以通过直接键入 vi 命令本身获得相同的效果。

–V

详细模式。通过标准输入读取 ex 命令时,输入会回显到标准错误。这在处理 shell 脚本内的 ex 命令时可能有用。

–x

加密选项;使用此选项时,edit 将模拟 exX 命令,并提示用户输入密钥。此密钥用于使用 crypt 命令的算法对文本进行加密和解密。X 命令会据理推测以确定读入的文本是否加密。临时缓冲区文件也会加密,使用的是为 –x 选项键入的经过转换的密钥版本。

–wn

将缺省窗口大小设置为 n。在通过低速线路使用编辑器时,这很有用。

+command | –c command

开始编辑时执行指定的编辑器 command(通常是搜索或定位命令)。

| –s

抑制所有交互式用户反馈。这在处理编辑器脚本时很有用。

filename 参数指示一个或多个要编辑的文件。

属性

有关下列属性的说明,请参见 attributes(5)

/usr/bin/edit

属性类型
属性值
可用性
system/core-os
CSI
Enabled(已启用)

/usr/xpg4/bin/edit

属性类型
属性值
可用性
system/xopen/xcu4
CSI
Enabled(已启用)

/usr/xpg6/bin/edit

属性类型
属性值
可用性
system/xopen/xcu6
CSI
Enabled(已启用)

另请参见

ed(1)ex(1)vi(1)attributes(5)XPG4(5)

附注

加密选项是随 "Security Administration Utilities"(安全管理实用程序)软件包提供的;该软件包仅在美国可用。