diff --git a/autoload/gitgutter.vim b/autoload/gitgutter.vim index 3f90eee..eb9c41d 100644 --- a/autoload/gitgutter.vim +++ b/autoload/gitgutter.vim @@ -3,7 +3,12 @@ let s:t_string = type('') " Primary functions {{{ function! gitgutter#all(force) abort - for bufnr in uniq(sort(tabpagebuflist())) + let processed = {} + for bufnr in tabpagebuflist() + if has_key(processed, bufnr) + continue + endif + let processed[bufnr] = 1 let file = expand('#'.bufnr.':p') if !empty(file) call gitgutter#init_buffer(bufnr) @@ -57,9 +62,13 @@ function! gitgutter#disable() abort for i in range(tabpagenr('$')) call extend(buflist, tabpagebuflist(i + 1)) endfor - call uniq(sort(buflist)) + let processed = {} for bufnr in buflist + if has_key(processed, bufnr) + continue + endif + let processed[bufnr] = 1 let file = expand('#'.bufnr.':p') if !empty(file) call s:clear(bufnr)