Vim CtrlP插件:手动设置root搜索目录?

时间:2012-08-08 21:51:43

标签: vim vim-plugin

我已阅读过文档,但无法弄清楚这是否可行。

我想保留默认设置g:ctrlp_working_path_mode = 2,但我希望能够根据需要手动覆盖当前窗口中所有缓冲区的设置。

具体来说,我想发出一个ctrlp命令或更改设置根搜索目录的ctrlp配置变量,这样就可以将该目录用于所有将来的搜索,无论我在哪个缓冲区。

奖金问题:是否可以设置两个根目录,以便搜索它们并合并结果?

谢谢!

4 个答案:

答案 0 :(得分:15)

试试这个:

  

让g:ctrlp_working_path_mode ='ra'

     

'c' - 当前文件的目录。

     

'r' - 包含以下目录或文件之一的最近的祖先:.git .hg .svn .bzr

     

'a' - 与c类似,但前提是当CtrlP之外的当前工作目录不是当前文件目录的直接祖先。

     

0或''(空字符串) - 禁用此功能。

来源:https://github.com/kien/ctrlp.vim

另外,在这里:https://github.com/kien/ctrlp.vim/issues/292,作者提供了一种设置完整路径的方法:

:CtrlP /var/www/myproject/bla/bla/theme

答案 1 :(得分:11)

我用:

let g:ctrlp_cmd='CtrlP :pwd'

这个重映射ctrlp命令到:ctrlp:pwd

答案 2 :(得分:8)

您可以在vimrc中使用以下内容

noremap <C-a> :CtrlP /yourdir/<CR>

无论何时按ctrl+a,ctrlp都会将/ yourdir /作为根目录

答案 3 :(得分:4)

Ctrlp会触发搜索当前工作目录。 因此,虽然您可以设置默认的g:ctrlp_working_path_mode = 2,但您可以通过更改pwd轻松覆盖当前窗口。 例子

(默认情况下)

:pwd tmp/vim/usr

并且您希望将其更改为tmp,只需

:cd ../../

现在运行ctrlp