用 Vim 文件中其他地方的寄存器或行范围的内容替换

发布于 2024-07-15 03:33:47 字数 261 浏览 6 评论 0原文

我正在使用 Vim,并且我想用一个跨多行的长字符串替换一些占位符文本,该字符串已写入文件中的其他位置。

是否可以用寄存器的内容替换模式? 类似的东西

:%s/foo/<contents of register A>

否则,是否可以用一系列行替换? 就像是

:%s/foo/<content of lines from 10 to 15>

I'm using Vim, and I want to substitute some placeholder text with a long string, that spans several lines, which is already written somewhere else in the file.

Is it possible to replace a pattern with the contents of a register? Something like

:%s/foo/<contents of register A>

Otherwise, is it possible to replace with a range of lines? something like

:%s/foo/<content of lines from 10 to 15>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

粉红×色少女 2024-07-22 03:33:47

根据 http://vim.wikia.com/wiki/Search_and_replace
看起来:

:%s/foo/\=@a/g

此外,在插入模式下按 a 将插入寄存器 a 的内容。

酷——我从来不知道这一点。 好问题。

其他一些与 相关的事情: http ://vimdoc.sourceforge.net/htmldoc/cmdline.html#c_CTRL-R

According to http://vim.wikia.com/wiki/Search_and_replace
It appears:

:%s/foo/\=@a/g

Also, pressing <c-r>a while in insert mode will insert the contents of register a.

Cool -- I never knew that. Good question.

Some other things to do with <c-r>: http://vimdoc.sourceforge.net/htmldoc/cmdline.html#c_CTRL-R

甜点 2024-07-22 03:33:47
:%s/foo/\=getline(10, 15)/g

:%s/foo/\=join(getline(10, 15))/g
:%s/foo/\=getline(10, 15)/g

:%s/foo/\=join(getline(10, 15))/g
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文