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

84521Re: regexp to identify N duplicates parts into several lines

Expand Messages
  • Ben Schmidt
    Nov 1, 2007
      > g/\(^[^/]\+;\)\(.*\n\)\(\(^\1\)\(.*\n\)\)\{1,\}/t$
      >
      > This regexp search highlights correctly the three first lines because
      > there is three times sortie.cpp,
      > it highlights the three lines after because there is three sortie.h
      > but it does not copy all highlighted at the end of the file.

      As documented, :g only runs its command on the first line of multi-line matches.

      You will need to do something a bit more complicated.

      I would suggest:

      1. Clear some register, say "a. :let @a=""

      2. Make the :g command append each match to that register using yank:

      :g/\(^[^/]\+;\)\(.*\n\)\(\(^\1\)\(.*\n\)\)\{1,\}/exe "normal \"Ay//e\<CR>"

      3. Move to the end of your buffer and put the register. :$put a

      Hope this helps!

      Ben.




      Send instant messages to your online friends http://au.messenger.yahoo.com


      --~--~---------~--~----~------------~-------~--~----~
      You received this message from the "vim_use" maillist.
      For more information, visit http://www.vim.org/maillist.php
      -~----------~----~----~----~------~----~------~--~---
    • Show all 8 messages in this topic