在GNU ed中,有没有办法取消当前输入?例如:
$ ed myfile.txt
1234
a
Wrong speling.
Bad sentance.
此时我想取消输入。我不再想插入我输入的两行。是否可以?我想继续这样:
.
u
使用“撤消”是取消输入的常用方法吗?还有其他方法吗?
答案1
您无法“取消”输入,就像“开始附加几行文本但实际上并未附加它们”一样。
在使用命令等添加文本时a
,单身的Ctrl+D按两次可以取消文本行前紧迫Enter。这样做也会终止当前的编辑命令。您无法通过这种方式取消添加超过当前行的内容。根据您的系统和ed
变体,Ctrl+D在插入模式下按两次可能会也可能不会给您一个新行来键入下一个命令(在 OpenBSD 上是这样,在 Ubuntu Linux 上不是)。
ed
如果您与 一起使用rlwrap
来获取命令历史记录和 Readline 编辑功能,则上述“技巧”(未记录的功能)将不起作用。
完成后您可以撤消整个操作,就像您展示的那样。您可以.
在自己的一行中结束文本的插入,然后发出u
(撤消)命令。您还可以Ctrl+D在新行上结束文本插入,然后使用该u
命令。
编辑ed
器具有单级撤消功能,这意味着您只能撤消最近的命令。撤消两次会撤消撤消操作。如果您使用单个g
、v
、G
或命令将多个命令应用于文本V
,则这将被视为一个命令,您可以根据需要撤消该命令。