我在vim中打开了一个很长的文件列表,如下所示:
/dir1/file1
/dir2/file2
/dir2/file3
.....
如何通过拆分或编辑在vim的同一会话中以最简单的方式逐个打开所有这些?
答案 0 :(得分:55)
我会用-p表示标签
vim -p `cat yourlistoffiles`
答案 1 :(得分:15)
您可以使用quickfix模式,如下所示
:set errorformat=%f
:cf myfilelist
此时您可以使用普通的quickfix快捷方式浏览文件,:cn
代表下一个文件,:cp
代表前一个文件,:cr
再次访问第一个文件
修改强>
哦,如果你想从当前缓冲区读取列表,请在上面的说明中使用:cb
而不是:cf
答案 2 :(得分:8)
我假设您在Vim中打开了文件列表,并希望在整个列表中模拟“gf”命令......
编辑.vimrc以包含此功能:
function Openall()
edit <cfile>
bfirst
endfunction
然后,您可以使用可视模式(1G,Shift-V,G)和输入“:call Openall()”突出显示整个文件(或您要打开的路径集)。然后命令行将显示:
:'<,'>call Openall()
这将在所有突出显示的行中运行新的Openall()函数。
按Enter键,所有文件将在后台缓冲区中打开。然后,您可以使用常用的缓冲区命令访问它们。 :ls会将它们显示为列表。
答案 3 :(得分:4)
您可以执行以下操作
cat file | xargs vim
“file”包含您的文件列表,这将在同一个vim会话中打开文件。像往常一样,当打开多个缓冲区时,您可以向前导航:bn和向后:bp。
答案 4 :(得分:2)
我想您要选择并列入 vim 。某个扩展名的所有文件。从您的主目录或特定来源。
find . -name "*.sh" | vim -
然后在vim中,您可以搜索并查看这个可能很大的列表。 (另一个话题)
您找到了自己的文件,现在想要拆分?
CTRL-W F *CTRL-W_F*
Split current window in two. Edit file name under cursor and
jump to the line number following the file name. See |gF| for
details on how the line number is obtained.
{not available when the |+file_in_path| feature was disabled
at compile time}
CTRL-W gf *CTRL-W_gf*
Open a new tab page and edit the file name under the cursor.
Like "tab split" and "gf", but the new tab page isn't created
if the file does not exist.
{not available when the |+file_in_path| feature was disabled
at compile time}
答案 5 :(得分:1)
就像输入
一样简单vim /dir1/file1 /dir2/file1 /dir2/file2 ...
一旦你进入vim,就可以用“:n”切换到下一个文件,“:prev”转到上一个文件。
答案 6 :(得分:1)
尝试使用bash:
$ vim -S <(sed "s/^/badd /" <your file name>)
但我不知道为什么忽略文件的第一行......: - O
此脚本按预期工作:
rm -f myfile
for i in `seq 10000`
do
touch $i
echo $i >> myfile
done
vi -c "badd `head -1 myfile`" -S <(sed "s/^/badd /" myfile)
http://vimdoc.sourceforge.net/htmldoc/starting.html#-S
http://vimdoc.sourceforge.net/htmldoc/windows.html#:bad
答案 7 :(得分:1)
我经常需要打开已在SVN结帐中修改过的文件的更改列表。 这个衬垫用于打开vim选项卡中的所有修改过的文件。
svn st | grep ^M | awk "{print($2)}" | xargs vim -p
答案 8 :(得分:0)
答案 9 :(得分:0)
我的searchInRuntime插件有一个:Sp和a:Vsp命令,这些命令在调用banged时会起作用。但是,文件必须存在。