当前位置:  开发笔记 > 开发工具 > 正文

如何在vim中的文件列表中打开文件?

如何解决《如何在vim中的文件列表中打开文件?》经验,为你挑选了4个好方法。

我在vim中打开了一个很长的文件列表,如下所示:

/dir1/file1
/dir2/file2
/dir2/file3
.....

如何通过拆分或编辑在同一个vim会话中以最简单的方式逐个打开所有这些?



1> Ronny Brende..:

我会用-p表示标签

vim -p `cat yourlistoffiles`


请注意,如果要在不使用vim选项卡的情况下在单独的缓冲区中打开文件,可以删除`-p`标志.
此外,如果对标签使用`-p`,则将打开的标签数量将限制为`tabpagemax`(默认为10).如果要将其更改为100(例如),可以将`set tabpagemax = 100`添加到vimrc或将其设置为其他位置.

2> Hasturkun..:

您可以使用quickfix模式,如下所示

:set errorformat=%f
:cf myfilelist

此时,您可以使用普通的quickfix快捷方式浏览文件,:cn下一个文件,:cp上一个文件,:cr再次转到第一个文件.

编辑:

哦,如果你想从当前缓冲区中读取列表,请使用上面的说明中的in :cb而不是:cfin



3> seanhodges..:

我假设您在Vim中打开了文件列表,并希望在整个列表中模拟"gf"命令...

编辑.vimrc以包含此功能:

function Openall()
    edit 
    bfirst
endfunction

然后,您可以使用可视模式(1G,Shift-V,G)并键入":call Openall()"突出显示整个文件(或您要打开的路径集).然后命令行将显示:

:'<,'>call Openall()

这将在所有突出显示的行中运行新的Openall()函数.

按Enter键,所有文件将在后台缓冲区中打开.然后,您可以使用常用的缓冲区命令访问它们.:ls会将它们显示为列表.



4> ng...:

您可以执行以下操作

cat file | xargs vim

如果“文件”包含您的文件列表,则将在同一vim会话中打开文件。和往常一样,当打开多个缓冲区时,可以使用:bn向前导航和:bp反向导航。


@ng,您根本不了解xargs。如果传递“成千上万个文件”,它将为前20个发出vim命令,然后为后20个发出另一个vim命令,依此类推。
推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有