Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Slow performance on CtrlP , it doesn't work to ignore some folders

Tags:

vim

ctrlp

I tried to ignore the vendor by adding the following setting in .vimrc and I start my ctrlP by typing ff

map ff :CtrlP<.><cr> 

However, it still tried to index all the files under the zeus folder including vendor folder.

enter image description here

But after finishing index, I still can NOT search the files under vendor,

enter image description here

Why does CtrlP take long time to index ?

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 

enter image description here

Here is my .vimrc, I thought there might be some settings conflicting each other

hi  Comment  ctermfg=6  "make vim save and load the folding of the document each time it loads" ""also places the cursor in the last place that it was left." au BufWinLeave *.* mkview au BufWinEnter *.* silent loadview   "function SetCafeOptions()     "CoffeeCompile     ":set nonu     ":res -24     ":res +24 "endfunction  set encoding=utf-8  set fileencoding=utf-8   colorscheme elflord             set smartindent set tabstop=4 set expandtab   set shiftwidth=4  "make it autoreload set autoread   "auto move it last time the position you viewed "make vim save and load the folding of the document each time it loads" ""also places the cursor in the last place that it was left."  "try to set show ansi color if &term=="ansi"      set t_Co=0  endif  "set expandtab  filetype on  if has("cscope")     set csprg=/usr/bin/cscope     set csto=0     set cst     set nocsverb     " add any database in current directory     if filereadable("cscope.out")         cs add cscope.out         " else add database pointed to by environment     elseif $CSCOPE_DB != ""         cs add $CSCOPE_DB     endif     set csverb     set cscopetag     set cscopequickfix=s-,g-,c-,d-,t-,e-,f-,i- endif  "let Tlist can close windows at one time let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'  " Key map " Presee F4 and you can open the NERDTree nnoremap <silent> <F4> :NERDTree<CR>   "nnoremap <silent> <F3> :!/usr/bin/env python %<CR> " Show function List with Tlist  nnoremap <F12> :TlistToggle<CR>  " Map ctrl+q to ctrlw+ctrlw " "nnoremap <silent> <C-q>  :<C-w><C-w>  "switch in splitted window map <c-d> <c-w>l map <c-a> <c-w>h  "set highlight set hlsearch  "set autocomplet  "autocmd BufNewFile,BufRead *.html.erb set filetype=html.eruby autocmd BufNewFile,BufRead *.html.erb set filetype=erb.html.eruby filetype plugin indent on  "auto import python template autocmd bufnewfile *.py 0r ~/common_lib/python_lib/tmpl.py   map ff :CtrlP<.><cr> "set NerdTreeSize let g:NERDTreeWinSize=12 let g:NERDTreeIgnore=['\.vim$', '\~$', '\vendor$'] "auto close the nerdtress window whe you open new file "let g:ctrlp_dont_split = 'nerdtree'  set nocompatible " explictly get out of vi-compatible mode  set background=dark " we plan to use a dark background  syntax on " syntax highlighting on  set number " turn on line numbers  set ruler "always show current position along the bottom  set incsearch " do highlight as you type you search phrase  set ignorecase " case insensitive by default  set smartcase " if there are caps, go case-sensitive   "Rope vim "let $PYTHONPATH .= ":~/install/ropehg/rope:~/install/ropehg/ropemode:~/install/ropehg/ropevim" "source ~/install/ropehg/ropevim/ropevim.vim "let g:pymode_rope_goto_def_newwin = "new" "let ropevim_vim_completion=1 "Use Ctrl + ] . to autocomple inoremap <C-]> <C-R>=RopeCodeAssistInsertMode()<CR> map <leader>j :RopeGotoDefinition<CR> map <leader>r :RopeRename<CR>  " Load the whole plugin  let g:pymode = 1 " Load run code plugin  let g:pymode_run = 1  "add ctrlp.vim setting "" set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/vendor/*,*/\.git/* let g:ctrlp_custom_ignore = 'tmp$\|\.git$\|\.hg$\|\.svn$\|.rvm$|.bundle$\|vendor' let g:ctrlp_working_path_mode = 0 let g:ctrlp_match_window_bottom=1 let g:ctrlp_max_height=25 let g:ctrlp_match_window_reversed=0 let g:ctrlp_mruf_max=500 let g:ctrlp_follow_symlinks=1 let g:ctrlp_clear_cache_on_exit=0   "Vundle  set rtp+=~/.vim/bundle/vundle/  call vundle#rc()  Bundle 'gmarik/vundle'  Bundle 'tpope/vim-surround'  Bundle 'Raimondi/delimitMate' "coffee script"  Bundle 'kchmck/vim-coffee-script'  Bundle 'ack.vim'  Bundle 'matchit.zip'  Bundle 'kien/ctrlp.vim'  "Markdown"  "Bundle 'plasticboy/vim-markdown'  ""Vim-scripts repo  "Bundle 'The-NERD-Commenter'  Bundle 'pep8'  ""Bundle 'AutoClose'  Bundle 'desert-warm-256'  Bundle 'https://github.com/altercation/vim-colors-solarized.git'  filetype plugin indent on   nmap <leader>a <Esc>:Ack ""   "folding code  nnoremap <space> za  vnoremap <space> zf  " pep8 let g:pep8_map='<leader>8'  "coffee script" call pathogen#infect()    let Tlist_Use_Right_Window   = 1  "autocmd BufEnter * if &filetype == "" | setlocal ft=python | endif  "markdown https://github.com/plasticboy/vim-markdown/wiki" "let g:vim_markdown_folding_disabled=1  "auto exec ruby and coffee script with F5 , remeber to save file before launching autocmd FileType python map <leader>p :!python %<cr> autocmd FileType ruby,rb map <leader>5 :w!<cr>:!ruby %<cr> autocmd FileType * map <leader>e :qa!<cr>  "set extension .god as a Ruby file" "au BufNewFile,BufRead *.god set filetype=ruby  "autocmd FileType coffee nmap <F5> :CoffeeCompile<cr> "autocmd FileType coffee map <F5> :call SetCafeOptions()<cr>  "so ~/.vim/snippets/support_functions.vim  set re=1  autocmd Filetype gitcommit setlocal spell textwidth=72    " enable per-project .vimrc files    set exrc  "   " Only execute safe per-project vimrc commands      set secure" 
like image 763
newBike Avatar asked Jan 25 '14 03:01

newBike


1 Answers

Here are a few tips that should definitely speed up ctrlp :

let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp' if executable('ag')   let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' endif 

In the above example, the first option tells ctrlp to persist the cache in the configured location, so when you launch vim again, it will read from there and load the cache (much faster).

The second option configures ctrlp to use ag (the_silver_searcher) instead of vim's native globpath() apis to search for files, this will drastically improve it's scanning speed, if you don't want to use ag, you can even use plain old grep and it still should be significantly faster. Check :h 'g:ctrlp_user_command' for more details.

like image 113
Dhruva Sagar Avatar answered Sep 30 '22 02:09

Dhruva Sagar