Ex 和 Vi:缓冲区和正则表达式

Ex 和 Vi:缓冲区和正则表达式

我想将正则表达式匹配放入缓冲区,但无法获得更简单的示例y :.put myNewBuffer返回消息[line] [put] [buffer]工作,即如何将某些内容放入缓冲区?

所以对于正则表达式和 ex

  1. 这是什么(.,.)~ replaces the previous regular expression with the previous replacement pattern from a substitution意思?一些有用的例子,来源引用
  2. 请举例说明如何将正则表达式与 ex 一起使用。例如,如何缓冲h从第一个字符开始的单词到以字符结尾的单词之间的区域s
  3. 如果一行中的最后一件事(即结束词是结尾到s或行尾)怎么办$

答案1

vim 手册可能比旧的 Ex 手册更好、更新。最有可能的是,您将在大多数现代 Linux 发行版上使用 vim 附带的 ex。要在 Vim 中获取帮助,请使用 :help,要获取有关特定命令(如 Ex 命令 ~)的帮助,请使用:help :~。在 Vim 中,所有 Ex 命令前面都有一个 : 。我认为 (.,.) 只是用来表示可以在 2,8 中指定的范围,表示文件中每一行的第 2 行到第 8 行或 1,$ ($ 表示最后一行)。在 Vim 中,键入:1,$~意味着在文件的每一行上运行 Ex 命令 ~。

  1. Vim 说的:~是“使用相同的替换字符串但使用上次使用的搜索模式重复上次替换。”替换通常写为:s/pattern/string/ 这在一行上查找模式并将其替换为字符串。 :~重复最后一个替换命令,但使用最近搜索的模式。

  2. 尝试这个模式:/\<h.*s\>

/ 用于在 Ex/Vim 中启动搜索,\< 表示匹配单词的开头,h 匹配 h,.* 其中 . 匹配任意单个字符,而 * 重复该字符零次或多次,因此 .* 表示匹配零个或多个字符。s 匹配 s,\> 匹配单词的结尾。

  1. 尝试这个模式/words\?$

$ 在模式匹配中使用时表示行尾,而 \?表示前一个字符是可选的。这将匹配行末尾的一个或多个单词。

相关内容