vim中有没有办法读取文件,比如:r
,然后将其存储在某个寄存器中?并且有没有办法做同样的事情,但只有文件中的行匹配某些模式?
答案 0 :(得分:14)
试试这个:
:let @x = join(readfile("~/.vimrc"), "\n")
它会显示.vimrc
以注册x
。
答案 1 :(得分:4)
使用外部grep,你可以这样做:
:let @x = system('grep pattern filename')
仅将pattern
中与文件filename
匹配的行放入注册x
。
答案 2 :(得分:2)
您可以使用:new
创建一个新缓冲区,读取文件:r <filename>
,使用gg"xyG"
将整个文件移入寄存器(例如x),然后使用{删除缓冲区{1}}。
如果您打算多次执行此操作,则可以为其创建映射。
要对与模式匹配的行执行相同操作,您可以在执行复制到寄存器之前执行全局命令(:q!
)。