使用 command-T 进行搜索

15

当我使用命令-T搜索某个文件时,通常会由于不在正确的目录中而无法找到它,因此我必须更改目录。

是否可能设置命令-T首先搜索在Nerdtree或其他地方书签​​的目录?

我可以将目录更改为/,但这会搜索非常大范围的文件。当我将目录更改为我的主目录并且正在寻找像.bashrc 之类的普通文件时,我会发现许多文件位于.wine目录下。

在99%的时间内,我需要在与我积极工作的项目目录中搜索文件。 我可以在某些偏好设置中设置这些目录吗?

2个回答

33

根据文档,您可以从搜索中排除目录:

                                            *command-t-wildignore*
  |'wildignore'|                                 string (default: '')

   Vim's |'wildignore'| setting is used to determine which files should be
  excluded from listings. This is a comma-separated list of glob patterns.
  It defaults to the empty string, but common settings include "*.o,*.obj"
  (to exclude object files) or ".git,.svn" (to exclude SCM metadata
  directories). For example:

     :set wildignore+=*.o,*.obj,.git

   A pattern such as "vendor/rails/**" would exclude all files and
  subdirectories inside the "vendor/rails" directory (relative to
  directory Command-T starts in).    

如果你想要排除备份文件夹,你可以这样写:

set wildignore+=project/backup

在您的 .vimrc 中

此外,要忽略点文件/点目录,您可以查看以下选项:

g:CommandTNeverShowDotFiles
g:CommandTScanDotDirectories
g:CommandTMaxDepth

这些选项使您能够:
- 完全忽略点文件;
- 停止在点目录中递归搜索;
- 指定 Command-T 应停止扫描的深度。
我在 作者的 git 中找到了这些信息,但您可以通过在 vim 中输入以下命令来查看此文档:
:help Command-T

(或类似的名称)

我在插件中没有看到任何有关偏好设置或书签的参考信息。
然而,如果您通过打开项目目录中的文件来启动vim,则可能希望将以下行添加到您的 .vimrc 文件中:

    set autochdir

此选项会将您的目录设置为当前文件所在的目录。


谢谢,看起来我可以通过您建议的命令部分实现目标。我希望作者能添加一些与 wildignore 相反的命令。 - xralf

1
你可以尝试 Ctrl-P。我之前也遇到了同样的问题,但进行这些更改后问题得以解决。
此外,我在 .vimrc 文件中忽略了一些文件夹。
let g:ctrlp_custom_ignore = {
\ 'dir':  '\.git$\|\.hg$\|\.svn$',
\ 'file': '\.exe$\|\.so$\|\.dll$' }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接