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

Copy matching line and following line to register

Expand Messages
  • skeept
    Following some vim tip, I can copy all the lines matching TODO to a register u with quq -- clear register u ... is there a similar way that I can
    Message 1 of 5 , Jul 19, 2013
    • 0 Attachment
      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?

      Thanks,

      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.
    • Paul Isambert
      ... Why not simply ô:g/TODO/y U 2ö? Paul -- -- You received this message from the vim_use maillist. Do not top-post! Type your reply below the text you are
      Message 2 of 5 , Jul 19, 2013
      • 0 Attachment
        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”?

        Paul

        --
        --
        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.
      • 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 3 of 5 , Jul 19, 2013
        • 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 4 of 5 , Jul 19, 2013
          • 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 5 of 5 , Jul 23, 2013
            • 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.