如何搜索和替换 vim 中的字符串,如何将 emacs 配置为处理部分或不完全匹配?

How can search and replace strings in vim and emacs be configured to work on partial or inexact matches?

我需要搜索和替换部分匹配的字符串,下面有一个 人为设计的 示例。下面的示例是我想复制以添加自己的网页的帮助指南中的 html。

Open Link
Open Link in Background Tab
Upload Link
Open Link in Foreground Tab
Open Link in New Window
Download Link
Open Link in Incognito Window

假设我想将信息放在 Markdown 或 Asciidoctor table 中,要求在以 for Open 开头的行之前添加 | 并在它们之后附加 |,但忽略其他行,即以 UploadDownload

开头的行

我如何构造搜索和替换字符串,以便它只对以 Open 开头的行进行操作?插入 | 会很简单,但是只对以 Open 开头的行执行 $ 正则表达式附加 | 将是问题所在。

是否也可以同时在两侧进行搜索和替换,即在单个命令中进行插入和追加,或者这是否需要某种脚本?(我可以将其作为一个单独的脚本问题)

s/^\(Open.*\)/||/

\( 和 \) 包含要记住的模式匹配(匹配模式中可以有多个 \( 和 \)),替换文本中的 \1 使用记住的文本。