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.

Reply via email to