我想将正则表达式匹配放入缓冲区,但无法获得更简单的示例y :.put myNewBuffer
返回消息[line] [put] [buffer]
工作,即如何将某些内容放入缓冲区?
所以对于正则表达式和 ex
- 这是什么
(.,.)~ replaces the previous regular expression with the previous replacement pattern from a substitution
意思?一些有用的例子,来源引用。 - 请举例说明如何将正则表达式与 ex 一起使用。例如,如何缓冲
h
从第一个字符开始的单词到以字符结尾的单词之间的区域s
? - 如果一行中的最后一件事(即结束词是结尾到
s
或行尾)怎么办$
?
答案1
vim 手册可能比旧的 Ex 手册更好、更新。最有可能的是,您将在大多数现代 Linux 发行版上使用 vim 附带的 ex。要在 Vim 中获取帮助,请使用 :help,要获取有关特定命令(如 Ex 命令 ~)的帮助,请使用:help :~
。在 Vim 中,所有 Ex 命令前面都有一个 : 。我认为 (.,.) 只是用来表示可以在 2,8 中指定的范围,表示文件中每一行的第 2 行到第 8 行或 1,$ ($ 表示最后一行)。在 Vim 中,键入:1,$~
意味着在文件的每一行上运行 Ex 命令 ~。
Vim 说的
:~
是“使用相同的替换字符串但使用上次使用的搜索模式重复上次替换。”替换通常写为:s/pattern/string/
这在一行上查找模式并将其替换为字符串。:~
重复最后一个替换命令,但使用最近搜索的模式。尝试这个模式:
/\<h.*s\>
/ 用于在 Ex/Vim 中启动搜索,\< 表示匹配单词的开头,h 匹配 h,.* 其中 . 匹配任意单个字符,而 * 重复该字符零次或多次,因此 .* 表示匹配零个或多个字符。s 匹配 s,\> 匹配单词的结尾。
- 尝试这个模式
/words\?$
$ 在模式匹配中使用时表示行尾,而 \?表示前一个字符是可选的。这将匹配行末尾的一个或多个单词。