vim - 如何使用 path=.,** 和 :find? 搜索隐藏目录/文件

标签 vim

我一直在用junegunn/fzf.vim在 vim 中快速查找(隐藏和非隐藏)文件。我just found也可以设置

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 内自 :find deep-file被发现。

有什么方法可以设置**也包括隐藏文件夹?也许也可以告诉 vim 使用特定命令进行搜索,因此我可以将其配置为包含隐藏文件/文件夹。

最佳答案

用于搜索文件的内置例程使用“深度优先搜索”算法,这使得它在许多情况下效率很低。 set path=.,**因此可能有点过分,因为它会强制 Vim 在切换到下一个目录之前查看每个子目录。在某些情况下它可能会起作用(正如我在您链接的答案中所强调的那样),但您应该知道 'path'旨在作为特定目录的列表并具有 **在那里有点失败。 “正确”的制作方式 :find通过隐藏目录是将它们添加到'path' :

set path+=.some_dir
set path+=.some_other_dir

虽然它肯定会比当前情况有所改善,但用“更好”的算法替换当前算法(例如
iterative deepening depth-first search ) 只能在 Vim 的 C 源代码中完成,因为 Vim 不公开 'filesearchprg'不幸的是,选项或类似的。

关于vim - 如何使用 path=.,** 和 :find? 搜索隐藏目录/文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52677909/

相关文章:

vim - 如何在 Vim 中高效地交错多组行?

vim - 获取当前文件的来源路径

linux - 如何链接到 vim 中的另一个文件?

vim - cmder 使用 ssh 以替换模式启动 vim

vim - 从VIM中的Visual Select中搜索?

vim - 如何在 vimrc 加载后运行 echo 语句?

linux - 我如何以最大化的窗口启动 gvim?

matrix - 设置vim背景透明

regex - Vim - 扩展 verilog 总线的宏

linux - 当我打开多个 vim 实例时关闭单个 vim 实例