我试图忽略vendor通过添加以下设置,.vimrc
我ctrlP通过键入启动我ff
map ff :CtrlP<.><cr>
Run Code Online (Sandbox Code Playgroud)
但是,它仍然试图索引zeus包含vendor文件夹的文件夹下的所有文件.

但在完成索引后,我仍然可以NOT搜索下的文件vendor,

为什么CtrlP需要很长时间才能编入索引?
129 "add ctrlp.vim setting
130 ""
131 set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/vendor/*,*/\.git/*
132 let g:ctrlp_custom_ignore = 'tmp$\|\.git$\|\.hg$\|\.svn$\|.rvm$|.bundle$\|vendor'
133 let g:ctrlp_working_path_mode = 'ra'
134 let g:ctrlp_match_window_bottom=1
135 let g:ctrlp_max_height=25
136 let g:ctrlp_match_window_reversed=0
137 let g:ctrlp_mruf_max=500
138 let g:ctrlp_follow_symlinks=1
139 let g:ctrlp_clear_cache_on_exit=0
Run Code Online (Sandbox Code Playgroud)

这是我的.vimrc,我以为可能会有一些设置相互冲突
hi Comment ctermfg=6
"make vim save and load the folding of the document each time it …Run Code Online (Sandbox Code Playgroud) 我想用ctrlp和vim使用ag(银色搜索器).我在.vimrc中有这个:
if executable("ag")
set grepprg=ag\ --nogroup\ --nocolor
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
endif
let g:ctrlp_show_hidden = 1
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/.tmp/*,*/.sass-cache/*,*/node_modules/*,*.keep,*.DS_Store,*/.git/*
Run Code Online (Sandbox Code Playgroud)
我希望ctrlp包含隐藏文件但隐藏文件.如果我添加-u到ag命令它显示所有隐藏文件但不尊重wildignore或.gitignore.有可能让它尊重这些吗?
我试图在.vimrc中放置忽略的设置
但是当我用ctrlprails搜索rails app文件夹时
它仍然搜索vendor文件夹,因此花了很多时间.
但是当搜索完成后,我无法在搜索下搜索任何内容 vendor
太奇怪了!如何解决它.
这是我的.vimrc设置文件.
http://d.pr/i/yMtK http://d.pr/i/Hy4u
" Sane Ignore For ctrlp
let g:ctrlp_custom_ignore = {
\ 'dir': '\.git$|vendor\|\.hg$\|\.svn$\|\.yardoc\|public\/images\|public\/system\|data\|log\|tmp$',
\ 'file': '\.exe$\|\.so$\|\.dat$'
\ }
Run Code Online (Sandbox Code Playgroud)
当我在最后添加代码 .vimrc
217 let g:NERDTreeIgnore=['\~$', 'vendor']
218 set wildignore+=*\\vendor\\**
Run Code Online (Sandbox Code Playgroud)
当我第一次使用CTRLP在RAILS应用程序文件夹下搜索时它工作,但仍然NOT在以下时间工作.
我想也许有些设置会禁用忽略的设置?
这是我的文件夹的结构
.
??? Gemfile
??? Gemfile.lock
??? README.rdoc
??? Rakefile
??? app
? ??? assets
? ??? controllers
? ??? helpers
? ??? mailers
? ??? models
? ??? uploaders
? ??? views
? …Run Code Online (Sandbox Code Playgroud) 我一直在使用CtrlP一段时间,但我仍然没有弄清楚如何重新索引它.因此,每当我想创建一个新文件时,我必须关闭所有现有的vim会话,创建该文件,然后重新打开它们.否则新文件将不会显示在结果中.
虽然这对屁股来说确实是一个巨大的痛苦,但我一直这样做而没有多想.今天我决定最后问.有谁知道如何重新索引CtrlP?我在文档中找不到它.
以下是我的ctr-p配置:
let g:ctrlp_map = '<Leader>t'
let g:ctrlp_match_window_bottom = 0
let g:ctrlp_match_window_reversed = 0
let g:ctrlp_working_path_mode = 'ra'
let g:ctrlp_root_markers = ['.ctrlp']
let g:ctrlp_dotfiles = 0
let g:ctrlp_switch_buffer = 0
Run Code Online (Sandbox Code Playgroud)
我在项目根目录中放了一个文件.ctrlp.
我输入,t和,d找到我的完整文件名"PhotoArtHacker",其完整路径为12083_cmcc_svn4456/mediatek/platform/mt6589/hardware/camera/hal/adapter/oppo/PhotoArtHacker.cpp.
虽然,我不知道为什么文件没有出现在搜索结果中?我的文件深度太深了吗?
顺便说一下,android项目包含数千个文件.
我正在使用vundle作为vim的插件管理器.
但是我在安装ctrlp插件时遇到问题.
当我执行时:BundleInstall ctrlp,它会输出以下日志并出现致命错误:
[131003 9时39分27秒]捆绑坚/ ctrlp
[131003 9时39分27秒] $ GIT中克隆--recursive ' https://github.com/kien/ctrlp.git '"/home/username/.vim/束/ ctrlp '[131003 9点39分27秒]>克隆到' /home/username/.vim/bundle/ctrlp'...^@fatal: https://github.com/kien/ctrlp.git/info / refs?service = git-upload-pack not found:你在服务器上运行了git update-server-info吗?^ @
[131003 09:39:28] Helptags:
[131003 09:39:28]:helptags/home /username/.vim/bundle/vundle/doc/
[131003 09:39:28]:helptags /home/username/.vim/bundle/vim-fugitive/doc/
[131003 09:39:28]:helptags/home /username/.vim/bundle/vim-colors-solarized/doc/
[131003 09:39:28]:helptags /home/username/.vim/bundle/nerdtree/doc/
[131003 09:39:28]帮助标签:4捆绑处理
[131003 09:49:39]捆绑ctrlp
[131003 09:49:39] $ git clone --recursive'https://github.com/vim-scripts/ ctrlp.git ''/
home/username..vim/bundle/ctrlp ' [131003 09:49:39]>克隆到'/home/username/.vim/bundle/ctrlp'...^@fatal:https : //github.com/vim-scripts/ctrlp.gi t/info/refs?service = git-upload-pack not found:你在服务器上运行了git update-server-info吗?^ @ [131003 09:49: 40] Helptags:
[131003 09:49:40]:helptags …
我希望我的CtrlP搜索目录在我更改NerdTree的根目录时随时动态更改.
插件插件如何在vim中工作?
对于我的回购,假设它被称为 top
top\
.gitignore
foo\
bar\
Run Code Online (Sandbox Code Playgroud)
我希望CtrlP列出文件
foo\ .gitignore定义不被忽略如果我进入top\foo\,并从那里打开vim,1会满意而不是2.
如果我打开vim top\,2会满意但不是1.
我如何实现1和2?
我尝试了这个gitignore vim脚本,但它只gitignore在我在repo的根文件夹中打开vim时解析,所以我不能同时做1和2.
同样的let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""',ag不试图去repo root并从那里读gitignore.
设置g:ctrlp_working_path_mode为r让CtrlP .gitignore在顶级文件夹中受到尊重,但是top\Ctrl 下会列出所有内容.我只想要文件foo\.
谢谢.
在ag命令行上使用时,如下所示:
$> ag . --ignore="*node_modules/*/node_modules" -l --nocolor -f -U -g ""
我能够避免在我的节点服务中搜索多个深度级别的任何node_modules目录,这是所需的行为.
但是,当我在我的vimrc中使用以下内容时,不会忽略多个深度级别的node_modules目录:
" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher
if executable('ag')
" Use Ag over Grep
set grepprg=ag\ --nogroup\ --nocolor
" Use ag in CtrlP for listing files. Lightning fast and respects .gitignore
let g:ctrlp_user_command = 'ag %s --ignore="*node_modules/*/node_modules" -l --nocolor -f -U -g ""'
endif
Run Code Online (Sandbox Code Playgroud)
如何设置ag并ctrlp正确忽略这些目录?在移植到vimrc时,不确定是否需要使用不同的语法(如regex)或其他一些问题.
我没有把它放在野外的原因是我的.gitignore中忽略了node_modules,所以我使用该-U选项忽略任何vcs文件(从而允许ag搜索node_modules) - 但是这个选项似乎也绕过了wildignore.
我用ag用ctrlp,如建议在这里:
if executable('ag')
set grepprg=ag\ --nogroup\ --nocolor
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
let g:ctrlp_use_caching = 0
else
let g:ctrlp_custom_ignore = '\.git$\|\.hg$\|\.svn$'
let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files . --cached --exclude-standard --others']
endif
Run Code Online (Sandbox Code Playgroud)
如果我从包含文件夹的项目文件夹中运行vim,这非常有用.git.但是,每当我从一个不是git项目根目录的目录运行Vim时,我得到一个空文件列表(没有结果).为了澄清,使用以下文件夹层次结构:
Proj1/ # ctrlp works; finds foo.js and bar.js (unless they are .gitignored)
.git/
bin/
foo.js
bar.js
Proj2/ # ctrlp doesn't work; has empty file list
bin/
foo.py
bar.py
Run Code Online (Sandbox Code Playgroud)
当我从同一目录中的命令行运行它时,实际的ag命令ag …