tutorial the farmacos cliente best vim ctrlp

the - vim project



Rendimiento lento en CtrlP, no funciona ignorar algunas carpetas (4)

Intenté ignorar al vendor agregando la siguiente configuración en .vimrc y comienzo mi ctrlP escribiendo ff

map ff :CtrlP<.><cr>

Sin embargo, todavía intentó indexar todos los archivos en la carpeta zeus incluida la carpeta del vendor .

Pero después de terminar el índice, todavía NOT puedo buscar los archivos en el vendor ,

¿Por qué CtrlP tarda mucho tiempo en indexar?

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

Aquí está mi .vimrc , pensé que podría haber algunas configuraciones en conflicto entre sí

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"


Aquí hay algunos consejos que definitivamente deberían acelerar ctrlp:

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

En el ejemplo anterior, la primera opción le dice a ctrlp que persista el caché en la ubicación configurada, por lo que cuando inicie vim nuevamente, leerá desde allí y cargará el caché (mucho más rápido).

La segunda opción configura ctrlp para usar ag (the_silver_searcher) en lugar de la globpath() de vim para buscar archivos, esto mejorará drásticamente su velocidad de escaneo, si no desea usar ag , incluso puede usar grep antiguo. Todavía debería ser significativamente más rápido. Verifique :h ''g:ctrlp_user_command'' para más detalles.


Como expliqué here , si escribe :help ctrlp-options y lee un poco, encontrará:

Nota # 1: por defecto, wildignore y g: ctrlp_custom_ignore solo se aplican cuando se usa globpath () para buscar archivos, por lo tanto, estas opciones no se aplican cuando se usa un comando definido con g: ctrlp_user_command .

Por lo tanto, es posible que necesite unlet g:ctrlp_user_command (posiblemente configurado en un comando predeterminado) para usar realmente wildignore . Por ejemplo, en su ~/.vimrc , agregue:

if exists("g:ctrl_user_command") unlet g:ctrlp_user_command endif set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/vendor/*,*//.git/* ...

Después de eso, necesita actualizar su caché ctrlp : en Vim, presione F5 en modo ctrlp , o ejecute :CtrlPClearAllCaches , o elimine el directorio del caché directamente en su shell:

rm -r ~/.cache/ctrlp/ # On Linux

En cuanto a la parte de indexación (que parece ser su problema), debe seguir sus reglas de ignorar. Puede revisar los archivos indexados en ~/.cache/ctrlp/%path%to%your%project%folder.txt .


Encontré este bit mientras miraba alrededor de las redes, y ha hecho que la indexación y la búsqueda de archivos sean instantáneas.

let g:ctrlp_user_command = [''.git/'', ''git ls-files --cached --others --exclude-standard %s'']

No entiendo bien lo que está sucediendo aquí, así que si alguien tiene un poco más de conocimiento para analizar esto, me encantaría saber qué está sucediendo detrás de escena.


Último recurso para un arranque rápido

Intenté todo lo que encontré en diferentes lugares para mejorar la velocidad de indexación de mi ctrlp, pero nada ayudó. Al final, me conformé con esto:

let g:ctrlp_clear_cache_on_exit = 0

Mantiene el ctrlp cache después de cerrar VIM , por lo que la próxima puesta en marcha será rápida. Y puede actualizar el caché manualmente presionando F5 en cualquier momento que lo necesite.