在当前缓冲区中,我有一个文件路径列表(每行一个)。我想将“args”设置为该文件列表。
我该怎么做? 感谢。
答案 0 :(得分:1)
尝试以下一系列命令:ggVGJ"ayy:args
然后按ctrl-r,然后按
说明:ggVGJ
会将所有行加入一行。 "ayy
会将新的单行拉入注册表a。 :args (filenames)
将设置参数,Ctrl-r, a
会将寄存器a的内容放入您当前正在键入的命令中。
如果您不想弄乱当前缓冲区(您正在编辑的文件),请先将所有行拖入空白临时缓冲区。
答案 1 :(得分:0)
:execute "args ".join(map(getline(1, line('$')), 'fnameescape(v:val)'))<CR>
说明:getline(1, line('$'))
将返回当前缓冲区中的行列表(从第一行(1
)到最后一行(line('$')
),map(getline(1, line('$')), 'fnameescape(v:val)')
将转义所有文件名,如果它们包含空格或其他特殊字符,join(...)
将通过在每两个列表项之间插入空格来加入结果列表,然后它将通过args
传递给execute
命令。