Vim 如何让CtrlP找到我的文件

Vim 如何让CtrlP找到我的文件,vim,ctrlp,Vim,Ctrlp,我在配置vim插件时遇到问题CtrlP。 我通常处理3个不同目录中的文件,如C:/A,C:/B/D,J:/A 当我启动vim并尝试查找文件CtrlP时,没有找到任何文件 那么,我怎样才能说CtrlP先查看这些目录呢? 第二,我希望CtrlP记住我打开的所有文件,因为我可能会再次打开它们。我如何告诉CtrlP这样做 这是我的配置 "============================= "=========== CTRLP =========== "======================

我在配置vim插件时遇到问题
CtrlP
。 我通常处理3个不同目录中的文件,如
C:/A
C:/B/D
J:/A
当我启动vim并尝试查找文件
CtrlP
时,没有找到任何文件

那么,我怎样才能说CtrlP先查看这些目录呢? 第二,我希望CtrlP记住我打开的所有文件,因为我可能会再次打开它们。我如何告诉CtrlP这样做

这是我的配置

"=============================
"=========== CTRLP ===========
"=============================
">>Use this option to change the mapping to invoke CtrlP in |Normal| mode
let g:ctrlp_map = '<c-p>'
">>Set the default opening command to use when pressing the above mapping
let g:ctrlp_cmd = 'CtrlP'
">>searching by filename (as opposed to full path)
let g:ctrlp_by_filename = 0 "in {0,1}
">>When opening a file, if it's already open in a window somewhere, CtrlP will try
"  to jump to it instead of opening a new instance
let g:ctrlp_switch_buffer = 'E'
">>Set the directory to store the cache files
let g:ctrlp_cache_dir = 'C:/Travail/Tools/vim-7.4.020-python-2.7-python-3.3-windows-x86/bundle/ctrlp.vim-master/cacheFiles'
”=============================
“===================CTRLP===========
"=============================
“>>使用此选项更改映射以在|正常|模式下调用CtrlP
设g:ctrlp_map=''
“>>设置按上述映射时使用的默认打开命令
设g:ctrlp_cmd='ctrlp'
“>>按文件名搜索(与完整路径相反)
设g:ctrlp_by_filename=0“in{0,1}
“>>打开文件时,如果文件已在某个窗口中打开,CtrlP将尝试
“跳转到它而不是打开新实例
设g:ctrlp_开关_缓冲区='E'
“>>设置存储缓存文件的目录
设g:ctrlp_cache_dir='C:/Travail/Tools/vim-7.4.020-python-2.7-python-3.3-windows-x86/bundle/ctrlp.vim master/cacheFiles'

额外的问题:在这个插件中,就像在其他插件中一样,我想提到
$VIM
,对我来说是
C:/Travail/Tools/VIM-7.4.020-python-2.7-python-3.3-windows-x86
,但在这里,看起来CtrlP不明白我如何修改
g:CtrlP_cache_dir
以使用
$VIM

您的问题实际上与CtrlP无关,因为它只是试图遵循VIM自己的模式

其中一种模式是“工作目录”:它在Vim启动时自动设置,可以在以后更改,但它通常是项目的顶级目录。为了让CtrlP和Vim能够找到您的文件,您必须将工作目录设置为三个目录的父目录。这是通过
:cd/path/to/dir完成的,但我的印象是,您在Windows上找不到这样的dir

或者,您可以将映射添加到
vimrc

nnoremap <key> :CtrlP /path/to/dir1<CR>
nnoremap <key> :CtrlP /path/to/dir2<CR>
nnoremap <key> :CtrlP /path/to/dir3<CR>
nnoremap:CtrlP/path/to/dir1
nnoremap:CtrlP/path/to/dir2
nnoremap:CtrlP/path/to/dir3
并使用
:CtrlPMRU
:CtrlPMixed

我同意国际非政府组织的观点,这是问题追踪者的东西


但是,实际上,整合您的所有内容并修复您的工作流程才是您所需要的。

为什么您不先问一下呢?!我认为它在这里是有用的,但肯定有一种方法可以让CtrlP记住在以前的会话没有打开的情况下打开的一些文件?关于工作目录,我不能以其他方式指定它吗?我不想定义映射来执行类似的操作,是否有一个选项来指定这些目录,以便CtrlP每次扫描这些目录?:CtrlPMRU是查找以前的文件的命令,正如我在回答中所写的。你读了吗?和:帮助ctrlp?