vi vim替换寄存器中的文本

问题描述

学习 vi / vim 和Linux以及学习:reg :let 用法。我的问题是如何替换和替换(编辑)寄存器文本?我已经在线搜索并在vi / vim帮助中进行了尝试,但均未获得预期的结果...

Ex:

Register a:
"1.  This is a sentence.  This is another sentence.  This is yet another sentence."

:.s/This/That/g-当文本在文件中时,将整个行中所有出现的“ This”替换为“ That”。

如何在注册a时用“ That”替换“ This”?

预先感谢您的建议或答案...

马丁

解决方法

使用\=可以替换表达式。该表达式可以是getreg()函数的值。

因此用寄存器This的内容替换a

:%s/This/\=getreg("a")/g

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

如您所见,您还可以使用“ at”获取寄存器的内容

,

我不知道这是否正是您想要的,但是请尝试一下:)

:let @a = substitute(@a,"This","That","g")

有关更多详细信息,您可以输入

:h substitute()