django-plus.vim icon indicating copy to clipboard operation
django-plus.vim copied to clipboard

Don't register filetype detection more than once

Open lieryan opened this issue 3 years ago • 0 comments

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 avatar Oct 01 '20 09:10 lieryan