繁体   English   中英

在vim中查找文件:如何使用Explore ** / *部分匹配文件名

[英]Find files in vim: how to do a partial filename match with Explore **/*

我最近发现以下内容可在Vim中查找文件。

 :Explore **/[pattern]

查找文件对我来说很重要,而且我无法相信没有它已经8年了。 我可以谈谈这位先生所说的话: http : //vim.wikia.com/wiki/Find_files_in_subdirectories

我看到人们在TextMate中搜索文件,不得不垂头丧气:(

因此,使用上述方法,我可以“理论上”搜索文件,但是输出使我感到困惑,并且通常包含不匹配的文件。 我将使用Rails示例。

例如这样做:

Explore **/envir*

产生此结果,其中包含许多额外的怪异文件:

../
deploy/
environments/
initializers/
locales/
.DS_Store
application.rb
authorization_rules.rb
boot.rb
config.yml
database.yml
deploy.rb
development.sphinx.conf
environment.rb
production.sphinx.conf
routes.rb
sphinx.yml
staging.sphinx.conf
test.sphinx.conf

那至少是可用的,我可以向下滚动到environment.rb并打开它。

但是说我想找到所有助手的列表。 我认为这是:

Explore **/*help*

可以,但是找不到文件。

有人可以照亮我吗?

您看过Ctrl-P.vim插件了吗? https://github.com/kien/ctrlp.vim

该插件以与您显示的方式相似的方式查找文件。

不, :Ex[plore] **/foo*很烂。

上面提到的CtrlP是一种优点(尽管有一些限制,我还是广泛使用它),它使您可以在项目中查找文件和其他细节。 FuzzyFinderCommand-T是值得替代的选择, LustyExplorer也是,而且显然还有很多其他选择。

但是Vim自己有能力。 在这里, wildmenu选项是关键。 只需将这两行添加到您的~/.vimrc

set wildmenu           " see :h 'wildmenu'
set wildmode=list:full " see :h 'wildmode' for all the possible values

通过上面的设置,以下命令将显示准确的匹配项列表,您可以轻松,相对直观地进行导航。

:e **/foo*<Tab>        " see :h starstar

如果将“工作目录”设置为项目目录,则该命令一定会给您带来良好的效果。 它不是很性感(不过我很喜欢),但它非常有效且可靠。 当然,该方法可以与:sp:vs:tabe

:find命令甚至更好,并且可能更适合您的需求:它查找path选项中定义的目录。 在会话开始时:set path=/path/to/project ,您可以使用以下命令打开项目中的任何文件:

:find foo<tab>         " see :h :find

整齐。

另一种可能性是使用“ args”。 您将与某种模式匹配的所有文件添加到“参数列表”,并使用缓冲区导航命令:

:argadd ./**/*.js      " see :h arglist
:sb foo<tab>

但这可能有点混乱。

总的来说,在Vim中有许多优雅的方式来处理文件导航(而且我什至没有提到基于tags的导航!)。 插件可以为许多导航需求提供一个很好的统一UI,但是有效查找文件不是必需的。 完全没有

有趣的是,TextMate和Sublime Text的模糊搜索实现实际上仅限于当前的“项目”,而对于那些Vim插件或Vim的内置文件处理则不是这种情况。

如果您想要的只是简单的:find类型功能,但部分文件名与Tab自动完成匹配,那么find-complete插件很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM