CTRL-P muito lento quando arquivos não são encontrados


7

Às vezes, digito incorretamente o nome de um arquivo. Então, digamos que eu tenho um arquivo chamado ThisIsAFileNamee começo a digitar ThisS...No momento em que digito incorretamente o nome do arquivo (e não há nenhum acerto), o CTRL-P se torna incrivelmente lento. Ele exibe cada letra seguinte a uma velocidade de aproximadamente 1 caractere a cada 5 segundos. Portanto, se eu digitar acidentalmente 6 caracteres extras, aguardo meio minuto para que o CTRL-P termine de exibir esses caracteres antes de poder desfazer isso.

Isso é algo que acontece regularmente? Alguma idéia de como consertar isso?


Eu estou enfrentando mesmo problema ...
Ejaz

Eu ainda estou preso na mesma situação. Eu tento não mis-feitiço, que é o meu atual "correção", mas se há uma melhor solução lá fora, eu sou todo ouvidos.
User32421

2
Eu achei este artigo de Doug muito útil. Tem uma seção em CtrlP. Citando o artigo> No entanto, podemos dizer ao CtrlP para executar um comando externo para encontrar os arquivos> correspondentes. Agora que temos um ag instalado, podemos usá-lo com CtrlP para tornar o CtrlP mais rápido. Embora eu ainda não tenha tentado usar o ag, parece ser algo que vale a pena tentar.
RIQ 10/10

Ctrl P é antigo, vamos tentar fzf, o desempenho é significativamente mais rápido.
Finn

Estou usando-o com ag no windows (que é consideravelmente mais lento que o Linux na descoberta e listagem de arquivos) com bons resultados. Não é imediato, mas é bom o suficiente para encontrar arquivos sem problemas.
Spidey

Respostas:


1

Você pode ativar o cache, se ainda não estiver ativado:

let g:ctrlp_use_caching = 1

Reduz significativamente o atraso e é ideal se não houver muitas alterações dentro do diretório, ou seja, não houver muitos arquivos novos ou excluídos. No entanto, à medida que os arquivos são adicionados, removidos ou renomeados, o índice do arquivo fica obsoleto e precisa ser atualizado (ou seja, re-indexado) pressionando ctrl+pe depois F5(ou alternativamente, entrar :CtrlPClearCacheno modo de comando).

Prefiro usar um aplicativo externo de pesquisa de arquivos mais rápido e não preciso lidar com o cache. Eu recomendo o Ag (The Silver Searcher) ou ripgrep . Eles são significativamente mais rápidos que o mecanismo de pesquisa interno do ctrl-p, e é muito fácil alternar o mecanismo.

O Ag ou o Ripgrep precisa ser instalado primeiro. E então .vimrc, adiciono o seguinte.

Se estiver usando o ripgrep:

if executable('rg')
    let g:ctrlp_user_command = 'rg %s --files --color=never --glob ""'
    let g:ctrlp_use_caching = 0
endif

Se estiver usando ag:

if executable('ag')
  let g:ctrlp_user_command = 'ag -l --nocolor -g "" %s'
  let g:ctrlp_use_caching = 0
endif
  • No Windows, o Ag parece ser mais lento e eu recomendo o Ripgrep em vez do Ag.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.