如果我使用 glob 模式在 vim 选项卡中打开文件集合,如果匹配该模式的文件数量超过 的值,我会收到警告tabpagemax
。例如,如果以下情况,
$ vi -p `find . -type f -name "*.tex"`
匹配的文件数量多于tabpagemax
,仅tabpagemax
打开选项卡式文档。在这种情况下我想要一个警告或错误。能做到吗?
答案1
我没有找到任何方法vim
可以在超出时发出警告tabpagemax
,因此下一个最好的事情是在运行之前进行检查vim
。
潜在的解决方案
在这里,我们首先运行查找,将结果存储在变量 中$tfiles
。然后,仅vim -p
当我们找到的文件数小于或等于该值 20时才调用$guard
。
$ guard=20
$ tfiles=$(find . -type f -name "*.tex")
$ [ $(echo $tfiles | wc -w) -le $guard ] && vim -p $tfiles || echo "too many"
这可以转换为 oneliner,如下所示:
$ guard=20; \
tfiles=$(find . -type f -name "*.tex"); \
[ $(echo $tfiles | wc -w) -le $guard ] && vim -p $tfiles || echo "too many"
例子
当我们返回超过 3 个文件时,我们将获得这种类型的体验:
$ guard=3; \
tfiles=$(find . -type f -name "*.txt"); \
[ $(echo $tfiles | wc -w) -le $guard ] && vim -p $tfiles || echo "too many"
too many
如果我们的文件少于 3 个,它们将在单独的选项卡中打开vim
。