Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 如何在CtrlP中保留以前的目录?_Vim_Ctrlp - Fatal编程技术网

Vim 如何在CtrlP中保留以前的目录?

Vim 如何在CtrlP中保留以前的目录?,vim,ctrlp,Vim,Ctrlp,使用CtrlP插件,我输入了几次。,以进入项目的根目录,然后从那里执行搜索 但是,在我重新打开CtrlP后,它仍然在当前文件的目录中搜索 我怎样才能让它坚持我最初设置的目录呢?当然,通过阅读它的文档 如果希望CtrlP始终在项目的根目录中打开(如果适用),只需将此行添加到~/.vimrc: let g:ctrlp_working_path_mode=2 但是您也可以使用:CtrlP在当前目录中浏览,也可以使用:CtrlpRoot在项目的根目录中浏览 或者简单地使用:CtrlPLastMod

使用CtrlP插件,我输入了几次
,以进入项目的根目录,然后从那里执行搜索

但是,在我重新打开CtrlP后,它仍然在当前文件的目录中搜索


我怎样才能让它坚持我最初设置的目录呢?

当然,通过阅读它的文档

  • 如果希望CtrlP始终在项目的根目录中打开(如果适用),只需将此行添加到
    ~/.vimrc

    let g:ctrlp_working_path_mode=2
    
  • 但是您也可以使用
    :CtrlP
    在当前目录中浏览,也可以使用
    :CtrlpRoot
    在项目的根目录中浏览

  • 或者简单地使用
    :CtrlPLastMode
    以…最后一种模式启动CtrlP

  • 如果您的项目不符合CtrlP对项目的定义,那么简单的映射就足够了:

    nnoremap <key> :CtrlP /path/to/project<cr>
    
编辑

我的回答基于我的机器上当前安装的CtrlP版本

最新版本在
:CtrlPLastMode
--dir
中添加了一个可选参数,该参数完全满足您的要求:

:CtrlPLastMode --dir

g:ctrlp\u working\u path\u mode
的值也不同。我相信
r
相当于
2

k,但这些建议似乎都不是答案。我在文档中没有看到选项“2”,可用的
g:ctrlp\u working\u path\u mode
选项似乎是
c、a、r、w或0
。此外,CtrlP似乎通过某个目录识别一个项目,该目录中有一个
.git
文件。我只想让它坚持到我搜索的最后一个目录。如果这件事不可能,我就把它当作一个答案。明白了
:CtrlPLastMode--dir
作业是否实际打开另一个文件似乎会更改工作目录…因此该选项几乎毫无用处。我猜解决方案是只需触摸项目目录中的
.git
文件。
:CtrlPLastMode --dir