不,您不能单独在一行中插入句点,因为这是ed
停止插入文本的指令;请参阅早期ed 手册页之一(第 7 页):
通过在行首单独键入句点 (.) 来退出输入模式。
您可以通过不单独输入句点来解决它;例如:Space.Enter后跟.Enter后跟s/^ //
。您可以使用除 Space 之外的任何其他字符作为标记,只要您在后续s//
命令中将其配对即可。
不能单独插入句点;当追加、更改或插入一行时,ed
最终会调用该append_lines
函数;该函数在buffer.c中读取由换行符(via get_stdin_line
)分隔的输入。作为其中的一部分,它会检查句点是否是结果中唯一的内容(除了尾随的换行符);下面,“ibufpp”是指向输入文本的指针,“size”是该缓冲区的长度:
if( size == 2 && **ibufpp == '.' ) { *ibufpp += size; return true; }
Run Code Online (Sandbox Code Playgroud)
您可以在以下位置下载压缩的 tar 包:http : //download.savannah.gnu.org/releases/ed/或查看Debian 的上游页面 ed或OpenBSD 的 ed 页面,其中相应的代码在main.c 中。
在ed(1) Conference twitter post 中发现的另一个选项是输入任何其他单个字符,然后用句点替换该字符:
s/./.
归档时间: |
|
查看次数: |
148 次 |
最近记录: |