6

vim 中有没有办法读取文件,例如 with :r,然后将其存储在某个寄存器中?有没有办法做同样的事情,但只能使用文件中与某些模式匹配的行?

4

3 回答 3

16

尝试这个:

:let @x = join(readfile("~/.vimrc"), "\n")

它将读取.vimrc注册x

于 2012-08-24T11:19:37.367 回答
5

使用外部 grep,您可以执行以下操作:

:let @x = system('grep pattern filename')

仅将pattern文件filename中匹配的行放在 register 中x

于 2012-08-24T12:02:41.740 回答
2

您可以使用 创建一个新缓冲区:new,读取文件:r <filename>,使用 拉取整个文件以获得寄存器(例如,x)gg"xyG",然后使用 删除缓冲区:q!。如果您打算多次执行此操作,您可以为其创建映射。

:h :g要对匹配模式的行执行相同操作,您可以在执行复制到寄存器之前执行全局命令 ( )。

于 2012-08-24T11:12:23.030 回答