vim - 如何使用 path=.,** 和 :find 搜索隐藏目录/文件?
问题描述
我一直在使用junegunn/fzf.vim在 vim中快速查找(隐藏和非隐藏)文件。我刚刚发现也可以设置
path=.,**
并用于:find some-file
实现几乎相同的功能,除了模糊搜索。由于我很少使用模糊搜索并且更喜欢使用尽可能少的插件(尽管它仍然很多),我正在考虑放弃 fzf.vim 并完全切换到 path/:find-approach。
也就是说,我这里缺少一个重要功能。据我所知,path
不包括隐藏目录。例如,给定以下目录结构
~/testdir
❯ tree -a
.
|-- .hidden-folder
| |-- some-hidden-file
| `-- some1-hidden
| `-- some2-hidden
| `-- deeply-hidden-file
|-- some-file
`-- some-folder
`-- some1
`-- some2
`-- deep-file
6 directories, 4 files
并打开vim some-file
,:find deeply-hidden
找不到文件。我认为这是因为它在一个.hidden-folder
since:find deep-file
被发现。
有什么方法可以设置**
包括隐藏文件夹吗?也许也可以告诉 vim 使用特定命令进行搜索,因此我可以将其配置为包含隐藏文件/文件夹。
解决方案
用于搜索文件的内置例程使用“深度优先搜索”算法,这在许多情况下效率很低。set path=.,**
因此可能有点过分,因为它会迫使 Vim 在切换到下一个目录之前查看每个子目录。它在某些情况下可能会起作用(正如我在您链接到的答案中所强调的那样),但您应该知道这'path'
是一个特定目录的列表,并且**
在其中包含了它的观点。通过隐藏目录的“正确”方法:find
是将它们添加到'path'
:
set path+=.some_dir
set path+=.some_other_dir
虽然这肯定是对当前情况的改进,但用“更好”的算法(比如
迭代加深深度优先搜索)替换当前算法只能在 Vim 的 C 源代码中完成,因为 Vim 没有公开'filesearchprg'
选项或类似的,很遗憾。
推荐阅读
- scala - 我应该添加哪个依赖项以使用 intelliJ 使用 scala-spark 在 s3 中获取 txt 文件?
- python - 无法使用python2对汉字进行unicode
- amazon-web-services - 使用 BG96 和 MQTT 协议将数据发布到 aws IoT 时连接断开
- image-processing - 从公园的航拍照片中检测垃圾?
- javascript - 无法在 node.js 控制台上打印 puppeteer 响应
- sql-server - Crystal Report 错误 - 无法加载文件或程序集
- excel - 在动态创建的工作表中创建动态按钮
- google-api - Google API 是否支持两步验证流程?
- sql - PostgreSQL 返回无法识别的配置错误
- java - 是否有更有效的方法来评估字符串的包含情况?