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!


      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