Skip to content

Instantly share code, notes, and snippets.

@tsukkee
Created March 1, 2011 09:27
Show Gist options
  • Select an option

  • Save tsukkee/848892 to your computer and use it in GitHub Desktop.

Select an option

Save tsukkee/848892 to your computer and use it in GitHub Desktop.

Revisions

  1. tsukkee created this gist Mar 1, 2011.
    15 changes: 15 additions & 0 deletions vimproc_read_line.vim
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    function! s:read_line() dict
    let l:output = self.buffer
    let l:res = l:output
    while l:res !~ '\r\?\n' && !self.__eof
    let l:res = self.read(256)
    let l:output .= l:res
    endwhile

    let l:pos = match(l:output, '\v%(\r?\n|$)\zs')
    let l:line = matchstr(l:output[: l:pos - 1], '.\{-}\ze\r\?\n$')
    let self.buffer = l:output[l:pos :]
    let self.eof = (self.buffer != '') ? 0 : self.__eof

    return l:line
    endfunction