我在vim中打开了一个很长的文件列表,如下所示:
/dir1/file1 /dir2/file2 /dir2/file3 .....
如何通过拆分或编辑在同一个vim会话中以最简单的方式逐个打开所有这些?
我会用-p表示标签
vim -p `cat yourlistoffiles`
您可以使用quickfix模式,如下所示
:set errorformat=%f :cf myfilelist
此时,您可以使用普通的quickfix快捷方式浏览文件,:cn
下一个文件,:cp
上一个文件,:cr
再次转到第一个文件.
编辑:
哦,如果你想从当前缓冲区中读取列表,请使用上面的说明中的in :cb
而不是:cf
in
我假设您在Vim中打开了文件列表,并希望在整个列表中模拟"gf"命令...
编辑.vimrc以包含此功能:
function Openall() editbfirst endfunction
然后,您可以使用可视模式(1G,Shift-V,G)并键入":call Openall()"突出显示整个文件(或您要打开的路径集).然后命令行将显示:
:'<,'>call Openall()
这将在所有突出显示的行中运行新的Openall()函数.
按Enter键,所有文件将在后台缓冲区中打开.然后,您可以使用常用的缓冲区命令访问它们.:ls会将它们显示为列表.
您可以执行以下操作
cat file | xargs vim
如果“文件”包含您的文件列表,则将在同一vim会话中打开文件。和往常一样,当打开多个缓冲区时,可以使用:bn向前导航和:bp反向导航。