如何在 vim 中为 ctrl p 将目录列入白名单

How to white list a directory for ctrlp in vim

Ctrlp 当前 searches/indexes 我的整个主目录,我怎么能告诉它只索引 ~/code

您必须 several options 配置 CtrlP 搜索文件的位置。您必须将这些添加到您的 .vimrc 文件中。

例如,在我的例子中,我使用 ag 来执行搜索:

let g:ctrlp_user_command = 'ag %s -l --hidden --nocolor -g "" --ignore .git'

通常CtrlP 会查看当前项目的目录。如果你总是想像你问的那样在 ~/code 中搜索,你可以添加这个自定义命令(在 OSX 中):

let g:ctrlp_user_command = 'find ~/code -type f ! -path "*.git*"'

您甚至可以添加额外的目录,例如:

let g:ctrlp_user_command = 'find ~/code ~/foo ~/bar -type f ! -path "*.git*"'

但是,我建议不要固定 CtrlP 将查找的目录,而让它搜索当前文件的项目(参见 let g:ctrlp_working_path_mode

CtrlP searches/indexes 你的整个主目录,因为这是你要求它做的。

您可能在 $HOME 中开始 Vim 并从那里开始 :CtrlP。由于工作目录是 $HOME,因此 CtrlP 会扫描所有目录,因此您不必感到惊讶。

解决此非问题的方法是简单地使用您的 shell 和 Vim,因为它们应该被使用:

$ cd ~/code
$ vim