Le jeudi 5 février 2015 05:12:19 UTC+1, h_east a écrit : > Hi Enno, > > 2015/2/4(Wed) 20:42:57 UTC+9 Enno: > > How about > > > > let b:isLoc = len(getloclist(0)) > 0 ? 1 : 0 > > > > inside of a qf filetype window. See :h getloclist() that explains > > > > For a location list window, the displayed location list is returned. > > > > All credit to romainl at > > https://github.com/romainl/dotvim/blob/44e87b3fbb829145a23bd5b2be1807cc958308e5/bundle/qf/after/ftplugin/qf.vim > > A location list can be associated with a quickfix window. > In this case, it can not be determined correctly in this work-around. > > Try this: > - move Vim source-code directory. > $ cd vim/src > - run vim (no vimrc, no plugin) > $ vim -N -u NONE screen.c > > :vimgrep screen *.c > :copen > :echo len(getloclist(0)) " on quickfix window > 0 " Correct > :lvimgrep update_screen *.c > :wincmd w > :lopen > :echo len(getloclist(0)) " on location list window > 75 " Correct > :wincmd k > :echo len(getloclist(0)) " on quickfix window > 75 " Not correct! > > > Our patch always returns correct value. > Thanks for the response. > > Best regards, > Hirohito Higashi (a.k.a h_east)
Hello Hirohito, Yep, this check has several issues. Yours stands, as well as that it fails when the qflist is empty. More stable seems the following workaround attachched below, originally from https://groups.google.com/forum/#!msg/vim_use/sfRlnrOwN2M/JAdzwHe51qYJ but at the same time, it shows that this patch is called for. -- In ~/.vim/ftplugin/qf.vim: if exists('s:processing') finish endif let listbufnr = bufnr("%") let numwindows = winnr('$') let altwin = winnr('#') let curwin = winnr() let s:processing = 1 copen if curwin == winnr() call setbufvar(listbufnr, 'isQuickfix', '1') endif " close the quickfix list if it was closed when we began if numwindows != winnr('$') cclose endif " return to quickfix/location list exe altwin 'wincmd w' exe curwin 'wincmd w' unlet s:processing Then a buffer of file type qf is a quickfix list if b:isQuickfix exists. -- -- You received this message from the "vim_dev" 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_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
