类似的东西(即,打开所有与glob表达式匹配的文件),但它抱怨
:
。是否存在Vim命令或单行代码来打开多个与通配符/ glob表达式匹配的文件(即是否涉及编写函数)?#1 楼
您可以使用:args {glob}
。在您的全局文件中,**
将递归遍历目录。这将填充参数列表,该列表与以一个或多个文件名作为参数启动Vim时填充的列表相同。
一旦填充了参数列表,就可以使用
:next
和:previous
在其中导航。您还可以使用:first
和:last
命令跳转到第一项和最后一项。#2 楼
在Vim:命令行上,我希望
:find */.git/config
做类似的事情(即,打开所有与glob表达式匹配的文件),但是它抱怨E77: Too many file names
。不要'在阅读文档之前不要期待任何事情。
除了汤姆的答案,您可以直接使用
:next
代替:args
。#3 楼
要在单独的选项卡中打开匹配的文件...:n */.git/config | tab all
说明:
:n
(:next
)将下一个文件列表设置为所有匹配项。 tab all
在新选项卡中打开下一个文件列表中的所有文件。包括所有匹配的文件,即使由于glob(…)
或suffixes
设置否则它们也将被忽略。 1表示返回列表,而不是字符串。 wildignorecase
是exe "tabe" f
的缩写,表示在新选项卡中打开变量execute "tabedit" f
指定的文件。评论
看起来像:n * /。git / config |缓冲工程。
–玛蒂·乌尔哈克(Mateen Ulhaq)
19-10-31在23:17
#4 楼
绝对已经在其他答案中解决了这个问题,但是tl; dr在缓冲区中打开: >
:n <your-file-glob>
用于:
VIM-Vi IMproved 8.2(2019年12月12日,编译于2020年7月23日16:01:01)
在Linux上运行(Clear Linux)
评论
欢迎来到Vi和Vim!如果您不介意我问,是否有理由总结其他答案中的内容?
– D. Ben Knoble♦
20年8月13日在13:57
是的,只是以一种最简单的方式获得了一个人想要使用的最常用方法,所有这些都在一个答案中。我喜欢人们提供的见解和细节,但是当您想要的只是“立即回答”时,因为您还有10项重要的工作要做...。当您想了解更深入的细节时,请回来阅读全部更好的答案和评论,涉及同一主题的大约5个不同的问题,那么您很高兴。但是有时候,您只想简单明了。
–克里斯
20年8月13日在22:46
#5 楼
通过vim */.git/config
打开文件绝对可以。如果不是这样,则应将Vim升级到7.4(以前的版本有很多错误)。 评论
您没有仔细阅读我的问题。并且,可接受的答案已经提到了:args。
–贾斯汀·凯斯(Justin M. Keyes)
2015年4月20日在1:59
@ JustinM.Keyes感谢您的观点。默认情况下,通配符应该工作,这是唯一的答案,说通配符应该在7.4中工作(因为升级之前我有完全相同的错误)。使用args只是解决方法,但它还向您展示了如何在vim自身中使用shell扩展,以防其他用户希望通过使用诸如find这样的方法将其用于更复杂的解决方案。因此,我认为这为您的问题提供了更多的价值。所以我希望你一切都好。
– Kenorb
2015年4月20日在10:42
我从来没有遇到过vim * / foo的问题,并且没有办法与Vim版本相关,因为这是一个shell功能。
–贾斯汀·凯斯(Justin M. Keyes)
15年4月20日在21:32
#6 楼
显而易见,但未在上面列出-示例查找名称中具有create_table字符串的所有sql文件:args **/*create_table*sql
并检查它们br />
并打开第一个
:ls
评论
好的:):args * /。git / config实际上也会填充缓冲区列表,所以:bnext也可以。这看起来很奇怪吗? (Vim 7.4.52和Neovim)
–贾斯汀·凯斯(Justin M. Keyes)
15年3月18日在4:00
提醒其他人,如果安装了github.com/tpope/vim-unimpaired,]a循环:args列表。
–贾斯汀·凯斯(Justin M. Keyes)
15年3月18日在4:01
:argadd文件*也可以。
– Kenorb
15年3月18日在12:26
要使用glob模式(**),需要设置globstar,请参阅:使用shell globbing匹配所有嵌套目录下的所有文件。
– Kenorb
15年4月18日在22:53
@ JustinM.Keyes缓冲区列表是args列表的超集,因此是可以预期的。
–詹姆斯
15年4月23日在14:34