Skip to content

Conversation

lieryan
Copy link

@lieryan lieryan commented Oct 1, 2020

This adds a command to avoid redefining autocmd more than once in a vim session.

Every time vim sets filetype for a new buffer, vim will re-run ftdetect.vim. The augroup in django-plus.vim's ftdetect.vim file didn't clear any of the existing commands in its augroup, so the autocmd will get registered multiple times. Indeed, this can be verified by running :autocmd filetypedetect to see that this command has been registered multiple times:

filetypedetect BufReadPost
    *        call djangoplus#detect#filetype(expand('<afile>:p'))
    *        call djangoplus#detect#filetype(expand('<afile>:p'))
    *        call djangoplus#detect#filetype(expand('<afile>:p'))
    [repeat 100 times]

I don't have measurements, but I can see a noticeable effect on the delay when opening new buffers in long running vim session with lots of open files.

@lieryan lieryan force-pushed the fix-augroup-redefinition branch from 85218ad to d8aa0fc Compare October 1, 2020 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant