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

Re: Copy matching line and following line to register

Expand Messages
  • Tim Chase
    ... or ... which is short-hand for ... so you can adjust the yanked-range forward/backwards as you see fit, such as can I get the line before and after the
    Message 1 of 5 , Jul 19, 2013
    View Source
    • 0 Attachment
      On 2013-07-19 23:08, Paul Isambert wrote:
      > skeept <skeept@...> a écrit:
      > > Following some vim tip, I can copy all the lines matching TODO to
      > > a register u with
      > >
      > > quq -- clear register u
      > > :g/TODO/y U -- append of the lines matching TODO to register u
      > >
      > > is there a similar way that I can append the line matching and
      > > the line following the matching line, for each line that matches?
      >
      > Why not simply “:g/TODO/y U 2”?

      or

      :g/TODO/;+y U

      which is short-hand for

      :g/TODO/.;+1y

      so you can adjust the yanked-range forward/backwards as you see fit,
      such as "can I get the line before and after the match?" which would
      be

      :g/TODO/-,+y U

      It looks a bit opaque to the uninitiated, but when you break it down,
      it's pretty simple, and something that's a lot harder (if not
      impossible) in other editors.

      -tim


      --
      --
      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+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Bee
      ... I use that simply form, and vim tells me many times that it yanked x number of lines. ... Adding silent will suppress those notices. Bill -- -- You
      Message 2 of 5 , Jul 19, 2013
      View Source
      • 0 Attachment
        On Friday, July 19, 2013 2:08:27 PM UTC-7, Paul Isambert wrote:
        > > Following some vim tip, I can copy all the lines matching TODO to a register u with
        > > quq -- clear register u
        > > :g/TODO/y U -- append of the lines matching TODO to register u
        > > is there a similar way that I can append the line matching and the line following the matching line, for each line that matches?
        > Why not simply “:g/TODO/y U 2”?

        I use that 'simply' form, and vim tells me many times that it yanked x number of lines.

        :silent g/TODO/y U 2

        Adding 'silent' will suppress those notices.

        Bill

        --
        --
        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+unsubscribe@....
        For more options, visit https://groups.google.com/groups/opt_out.
      • Jorge Rodrigues
        ... Thanks everyone. My next question was going to be how I do this if I start with let @u= ... but I figured this one, I just have to do ... Jorge -- --
        Message 3 of 5 , Jul 23, 2013
        View Source
        • 0 Attachment


          On Fri, Jul 19, 2013 at 4:33 PM, Bee <forth@...> wrote:
          On Friday, July 19, 2013 2:08:27 PM UTC-7, Paul Isambert wrote:
          > > Following some vim tip, I can copy all the lines matching TODO to a register u with
          > > quq         -- clear register u
          > > :g/TODO/y U -- append of the lines matching TODO to register u
          > > is there a similar way that I can append the line matching and the line following the matching line, for each line that matches?
          > Why not simply “:g/TODO/y U 2”?

          I use that 'simply' form, and vim tells me many times that it yanked x number of lines.

          :silent g/TODO/y U 2
           

          Adding 'silent' will suppress those notices.

          Bill
           
           
          Thanks everyone.
          My next question was going to be how I do this if I start with
          let @u= ""
          :redir @U
          but I figured this one, I just have to do
           
          :g/TODO/.,+2print
           
          Jorge

          --
          --
          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+unsubscribe@....
          For more options, visit https://groups.google.com/groups/opt_out.
           
           
        Your message has been successfully submitted and would be delivered to recipients shortly.