Existe uma maneira de criar um perfil dos plugins do Vim?
Meu MacVim fica cada vez mais lento quando abro uma grande .py
. Eu sei que poderia desmarcar todos os plugins e selecionar um por um para verificar qual plug-in é o culpado, mas existe uma maneira mais rápida?
Meu dotvim está aqui: https://github.com/charlax/dotvim
debugging
optimization
vim
macvim
charlax
fonte
fonte
.py
arquivos.autocmd
palpite de Ingo Karkat parece o mais plausível para mim.autocmd
parece legal. Apenas tentei, mas o Vim não está lento no momento.folding=syntax
pode abrandar. Tentei comfolding=manual
e agora tudo funciona bemRespostas:
Você pode usar o suporte integrado à criação de perfil: após iniciar o vim do
(diferente de desistir
noautocmd
não é realmente necessário, apenas faz o vim sair mais rápido).Nota: você não obterá informações sobre as funções excluídas antes de sair do vim.
fonte
:set more | verbose function {function_name}
mostra o conteúdo da função e onde ele está localizado.profile.log
é um arquivo no diretório atual da sua sessão do Vim.profile.log
para ver a lista de funções classificadas pelo tempo total (profile.log
pareceu-me inútil antes de eu encontrar uma lista classificada no final).Encontrei outro método muito útil do vim buildin para mostrar exatamente as mensagens de tempo durante o carregamento do .vimrc.
Por favor, execute:
no VIM para obter mais informações.
fonte
IM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 10 2013 14:33:40)
-V
mostraram que não era o local que$HOME
causava o problema:e
para atualizar o arquivo. Classifique o arquivo no lugar de acordo com o tempo total gasto para cada operação da seguinte maneira:%! sort -k2 -nr
Pode ser um plugin ou o destaque da sintaxe; tente
:syntax off
quando isso acontecer e veja se o Vim fica instantaneamente mais rápido.Nos plugins, uma "lentidão geral" geralmente vem de comandos automáticos; a
:autocmd
lista todos eles. Investigue matando alguns deles via:autocmd! [group] {event}
. Prossiga de eventos mais frequentes (ou sejaCursorMoved[I]
) para eventos menos frequentes (por exemplo,BufWinEnter
) ).Se você conseguir reproduzir de maneira confiável a lentidão, uma pesquisa binária poderá ajudar: Afaste metade dos arquivos
~/.vim/plugin/
e repita o outro no conjunto que estava lento.Se você realmente precisa olhar por baixo do capô, obtenha uma versão do Vim com o
:profile
comando ativado. (Não é a versão baunilha do BIG Windows, mas a que acompanha o Cygwin possui; também, a compilação automática é bastante fácil na maioria das distros.)fonte
Eu achei útil imprimir todas as atividades do Vim em um arquivo iniciando o Vim com a
-V
opção:Isso fornece a verbosidade máxima (nível 12) e a gera no arquivo
log
. Você pode executar algumas ações do Vim que você sabe serem lentas e depois ver quais funções / mapeamentos estão sendo chamados internamente.fonte
Se você estiver tendo problemas com as operações de atualização da tela (
^L
rolagem, etc), sendo lentas, seu problema pode ser um arquivo de destaque de sintaxe ineficiente. Você pode testar isso desativando temporariamente o realce da sintaxe (:syn off
) e verificando se o problema desaparece; se você quiser pesquisar os detalhes, pode criar um perfil do arquivo de sintaxe atual usando:syntime
::syntime on
para iniciar a criação de perfil.:syntime report
para gerar um relatório. Os padrões listados primeiro no relatório são os que levaram mais tempo para serem processados.fonte