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

Re: Antw: Re: Loop through all lines in a file

Expand Messages
  • Tim Chase
    ... I second Benji s suggestion of using a :g command if possible. It s more idiomatic, making it easier to understand. While you omit what you re doing with
    Message 1 of 6 , Jun 1, 2006
    • 0 Attachment
      > In the meantime I found a solution myself:
      >
      > let s:lnr=line(".")
      > let s:image=getline(s:lnr)
      > while (strlen(s:image) != 0)
      > let s:lnr=s:lnr+1
      > let s:image=getline(s:lnr)
      > endwhile
      >
      > I'm not that familiar with the global commands yet, maybe I
      > have to read the documentation again.


      I second Benji's suggestion of using a ":g" command if possible.
      It's more idiomatic, making it easier to understand.

      While you omit what you're doing with s:image once you have it,
      unless you're doing something with it within the body of your
      while statement, you're only getting the last one. It also looks
      like you're getting the line number only to pass it to getline().

      The idiomatic way would be something like

      :g/^/let s:image=getline(".")


      If you only want from the current line to the end of file, you
      can use

      :.,$g/^/let s:image=getline(".")

      (:g defaults to the whole file if you don't specify a range, such
      as ".,$")

      If you want to call a function with each line, or run an external
      command, you can do something like

      :g/^/exec "!somecommand ".getline(".")

      Hope this gives you some additional ideas regarding how to use
      the :g command.

      -tim
    Your message has been successfully submitted and would be delivered to recipients shortly.