在Linux或Mac环境中,Vim的glob()
函数不匹配点文件,如.vimrc
或.hiddenfile
。有没有办法让它匹配 * 所有 * 文件,包括隐藏文件?
我使用的命令:
let s:BackupFiles = glob("~/.vimbackup/*")
我甚至尝试将神秘的{flag}
参数设置为1
,但它仍然不返回隐藏文件。
- 更新:**谢谢 * ib *!以下是我一直在努力的结果:delete-old-backups.vim.
在Linux或Mac环境中,Vim的glob()
函数不匹配点文件,如.vimrc
或.hiddenfile
。有没有办法让它匹配 * 所有 * 文件,包括隐藏文件?
我使用的命令:
let s:BackupFiles = glob("~/.vimbackup/*")
我甚至尝试将神秘的{flag}
参数设置为1
,但它仍然不返回隐藏文件。
1条答案
按热度按时间nbewdwxp1#
这是由于
glob()
函数的工作方式:单星模式与隐藏文件不匹配,在大多数shell中,默认的globbing样式可以更改(例如,通过Bash中的shopt -s dotglob
),但不幸的是,这在Vim中是不可能的。然而,我们仍然有几种可能性来解决这个问题。首先,也是最明显的是,分别对隐藏文件和非隐藏文件进行glob,然后将结果连接起来:
(Be注意不要将
.
和..
条目与隐藏文件沿着提取。)另一种可能更方便但移植性较差的方法是在
glob()
调用中使用反勾扩展:这将迫使Vim在反引号内执行命令以获取文件列表。
find
shell命令列出指定目录中的所有文件(-type f
),包括隐藏文件(-maxdepth 1
禁止递归)。