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

Re: Copy matching line and following line to register

Expand Messages
  • 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 1 of 5 , Jul 19, 2013
      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 2 of 5 , Jul 19, 2013
        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 3 of 5 , Jul 19, 2013
          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 4 of 5 , Jul 23, 2013


            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.