我正在研究ed文本编辑器。
要退出输入模式,用户应在单个句点(.)中输入一行。
假设我要输入句点作为文本。
我想到了一种解决方法:首先,我插入..。然后,我替换..为.。
但是我的方法有点笨拙。有一个更好的方法吗?
我没有找到魔术逃生序列。
似乎不存在。
但是此链接提供2个解决方案。首先,我描述了我的问题。第二个更接近逃脱的解决方案。
r ! echo .
Run Code Online (Sandbox Code Playgroud)
通读GNU的C源代码ed(1),没有转义符。在我想这样做的场合,我倾向于添加一个空行,然后使用快速替换:
a?
?
.?
s/^/.?
Run Code Online (Sandbox Code Playgroud)
或者您可以添加一个字符然后将其删除(如果您在打ed(1)高尔夫球,则比上面多一个字符)
a?
x?
.?
s/./.?
Run Code Online (Sandbox Code Playgroud)