Hi, > I would like an indicator in my 'titlestring' that informs me if ANY > changes are present in ANY listed buffer. This would be more like a > global indicator for the 'modified' setting. What is the most > efficient way to do this? > > Currently, I've taken the naive approach: > > function! g:ChangesExist() > let l:bufferList = filter(range(1, bufnr('$')), 'buflisted(v:val)') > for l:bufferNumber in l:bufferList > > if getbufvar(l:bufferNumber, '&modified') > return 1 > endif > endfor > return 0 > endfunction > > > This seems like the most direct method, but I'm wondering if there's > some simple option or function call that I'm missing...
If speed is really that important, get rid of the loop and use something like return !empty(filter(bufferList, "getbufvar(v:val, '&modified')")) or, in a single step: return !empty(filter(range(1, bufnr('$')), "buflisted(v:val) && getbufvar(v:val, '&modified')")) -- Luc Hermitte -- -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_use" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.