如何将“args”设置为当前缓冲区的文件列表

时间:2010-10-14 15:16:42

标签: vim

在当前缓冲区中,我有一个文件路径列表(每行一个)。我想将“args”设置为该文件列表。

我该怎么做? 感谢。

2 个答案:

答案 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命令。