这个看似简单的编辑器为用户提供了许多易于学习和使用的命令。GNUed命令是行编辑器。它被认为是标准的Unix文本编辑器,因为它是第一个出现在Unix上的文本编辑器,而且它曾经无处不在,你可以在任何POSIX系统上找到它(通常,你现在也可以)。在某种程度上,您可以很容易地看出它是第一个文本编辑器,因为它在很多方面都非常基础。与大多数其他文本编辑器不同,它不会打开自己的窗口或显示区域,事实上,默认情况下,它甚至不会提示用户输入文本。另一方面,它缺乏交互功能也是一个优势。它是一个多功能的编辑器,您可以在交互式命令行或您编写的shell脚本中使用短命令进行控制。安装ed如果您使用的是Linux或BSD,您可能已经默认安装了ed(在Linux上是GNU版的ed,在BSD上是BSD版的ed)。然而,一些极简主义环境可能不包括ed,没关系,你的发行版的存储库很可能已经提供了ed可供下载。macOS默认安装了BSD版本的ed。启动ed当您启动ed时,您的终端提示符消失并且ed似乎已停止工作。其实并没有,它只是在等待你的输入。$ed要使ed显示更详细的信息,可以输入命令p让它返回一个提示符:$edp?问号(?)是默认的ed提示符。缓冲区当ed处于活动状态时,您实际上是在处理称为缓冲区的东西。缓冲区是内存中的一块区域。您不直接编辑文件,而是编辑其相应的缓冲区。当您退出而不保存对磁盘上文件的更改时,所有更改都将丢失,因为它们只存在于缓冲区中。(对于习惯了原始暂存缓冲区的经验丰富的Emacs用户来说,这听起来可能很熟悉。)使用ed输入文本启动ed后,您将进入命令模式。这意味着您可以向编辑器发送命令,例如让它显示提示而不是空格。您可以使用a命令开始将文本附加到当前缓冲区,使用实心点。终止输入。例如,以下示例将两行文本(“helloworld”和“helloed”)附加到缓冲区:一个你好世界你好。使用点.终止输入后,您将返回到命令模式。如何查看缓冲区如何查看当前缓冲区中有什么?可以输入要查看的行号,也可以使用p命令显示所有行:?1helloworld2helloed,phelloworldhelloedwrite如果你对现在的文本感到满意,你可以使用w命令将缓冲区写入文件,后面跟着目标文件名:?wexample.txt19写操作后显示的数字代表写入文件中的字符数。读取文件除了使用ed读取文本外,您还可以使用r命令将现有文件加载到缓冲区中:?rmyfile.txt另外你也可以在启动ed的时候在它后面加上你要加载到缓冲区的文件名:$edmyfile.txt编辑缓冲区既然ed是一个文本编辑器,你当然可以使用一个编辑缓冲区中文本的特殊语法。sed或vim的用户可能会发现这种语法很熟悉。假设缓冲区中已经加载了一个文件:$edmyfile.txt,p这是一个示例文件。有一些文字,但不多。有一些错误,但不多。如果把第一句Tomodifydocumentinfiletofile,可以先选中目标行(1),然后用s命令调用搜索函数,后面是搜索文本和替换文本:?1这是一个示例文档。s/document/file/1这是一个示例文件。如果要编辑其他行,步骤相同,只是提供不同的行号:?3有一些错误,但不多。s/is/are/s/much/many/您可以使用,p命令查看您对缓冲区的历史编辑:这是一个示例文件。有一些文字,但不多。有一些错误,但不多。当然,这些修改只存在于缓冲区中。如果您在ed编辑器之外查看此文件,您将只能看到原始文本:$catmyfile.txt这是一个示例文档。有一些文字,但不多。有一些错误,但不多。如果要将这些更改保存回文件,请使用w命令:wmyfile.txt258清除缓冲区如果要获取新缓冲区、打开新文件或加载新文件到不同的环境,您可以使用c命令。用这个清除缓冲区后,不会有任何输出,因为缓冲区已经是空的:c,pquit如果你想退出当前的ed会话,你可以使用q命令。它不会给您保存缓冲区的机会,因此您必须确保在这样做之前保存。试试eded可以做更多的事情,学习ed会让你了解它和vim的某些部分是如何工作的。我没有尝试使用ed来写这篇文章,老实说,我并不认为它通常是最好的文本编辑器。然而,ed仍然是一位出色的编辑器。您可以通过阅读其文档轻松学习它。在GNU系统上,您可以使用infoed查看其手册。
