Loading ...
Sorry, an error occurred while loading the content.

Re: getchar() blocks the output

Expand Messages
  • sinbad
    ... thanks ZyX, redraw() did the trick. -- You received this message from the vim_use maillist. Do not top-post! Type your reply below the text you are
    Message 1 of 4 , Aug 28, 2011
    • 0 Attachment
      On Aug 26, 8:01 pm, ZyX <zyx....@...> wrote:
      > Reply to message «getchar() blocks the output»,
      > sent 17:50:08 26 August 2011, Friday
      > by sinbad:
      >
      > > basically i want to display a list of choices for the user and based
      > > on the users input i will take some action. so the lines 7-8 will
      > > actually list the users with some choices in a new window. but the
      > > window is not getting opened because of getchar(), according to
      > > the code that's what suppose to happen. why getchar() is blocking
      > > output, is there any way around this.
      >
      > In this code getchar() is not blocking an output, &lazyredraw option should be
      > the cause. If you want to use buffer and not :echo or input()/inputlist(), then
      > you should put explicit :redraw before getchar() call. Or :redraw! if without a
      > bang does not work.
      >
      > Original message:
      >
      >
      >
      >
      >
      >
      >
      > > hi,
      >
      > > i've the following function.
      >
      > >  1 fun! Dosome()
      > >   2     vertical botright new
      > >   3     setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile
      > >   4     setlocal nowrap
      > >   5     setlocal nonu
      > >   6
      > >   7     for m in g:list
      > >   8         let txt = printf("%s %-50s %-4d %-50s", m[0], m[1]. "()",
      > > m[2], m[3])
      > >   9         put =txt
      > >  10     endfor
      > >  11
      > >  12     let char = getchar()
      > >  13     setlocal nomodifiable
      > >  14     silent! "'".char
      > >  15 endfun
      >
      > > basically i want to display a list of choices for the user and based
      > > on the users input i will take some action. so the lines 7-8 will
      > > actually list the users with some choices in a new window. but the
      > > window is not getting opened because of getchar(), according to
      > > the code that's what suppose to happen. why getchar() is blocking
      > > output, is there any way around this.
      >
      > > thanks
      >
      >
      >
      >  signature.asc
      > < 1KViewDownload

      thanks ZyX, redraw() did the trick.

      --
      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
    Your message has been successfully submitted and would be delivered to recipients shortly.