古老的ed编辑器的问题

OpenBSD的安装、升级、更新等日常问题。

版主: chenjun天地乾坤

回复
zhangteng
铝 Al
帖子: 9
注册时间: 2015-01-13 7:42

古老的ed编辑器的问题

帖子 zhangteng » 2015-01-13 17:05

我正在学习ed编辑器,其中再在ed手册(OpenBSD)中有一个命令描述写到:
(1,$)w file ........
我已经看了好几遍这个地方,还是没弄懂。
我输完文本后,在下一行写了 “.”, 在下下行输入2w,接着下下下行输入q ,结果给出了“?”。
我觉得是不是手册描述错了,如果w 后没有名字的话,不是会自动保存到开始打开的那个文件吗? 为什么会弹出“?”呢 ?希望有人为我解答

zhangteng
铝 Al
帖子: 9
注册时间: 2015-01-13 7:42

问题已经解决

帖子 zhangteng » 2015-01-15 9:18

当执行完“2w”命令后,编辑器首先删除原文件(在进入ed时被指定的文件)的内容,再将缓冲区第二行的内容写入该文件。当再一次按下“q”时,因为缓冲区中的内容未被清除(2w的作用只是将缓冲区第二行的内容复制到文件,它并不能改变缓冲区的内容),所以编辑器认为还有要执行的任务,所以输出“?”(好像在说,你真的要离开我吗),当再一次按下“q”(下一行)时,它被强制退出。

zhangteng
铝 Al
帖子: 9
注册时间: 2015-01-13 7:42

总结

帖子 zhangteng » 2015-01-15 9:19

总结:这个问题的解决完全出自对“q”命令的理解和对ed编辑器操作对象的理解。
1.ed编辑器的对象是缓冲区,实体文件只是缺省的保存地方(只按“w” 不输入文件名),除此以外,任何的文本操作只是针对缓冲区。(在按下“2w”或其他的“nw”或“w”之前)
2.当缓冲区有文本时,按下“q”会提示“?”,因为编辑器不知道如何处理那些文本,再按“q”,是你告诉它它应该删除所有内容并退出。

头像
acheng
锌 Zn
帖子: 581
注册时间: 2011-07-07 21:52

Re: 古老的ed编辑器的问题

帖子 acheng » 2015-01-15 17:25

谢谢分享。
现在用ed的很少了。一旦熟悉了ed,再用sed就得心应手了

回复

在线用户

正浏览此版面之用户: Ahrefs [Bot] 和 13 访客