On May 24, 2011, at 1:45 PM, Tony Mechelynck wrote: > On 24/05/11 14:31, Eljay Love-Jensen wrote: > [...] >> I'm not sure why I have to search FOR multiple \n and replace WITH the >> \r. That may be a vi-thing, a Vim-thing, or a quirk / detail of my >> platform (Windows 7, using the prebuilt gVim, using :set ff=unix line >> endings). Hmmm, I never thought about that discrepancy before. [...] > > It may be vi-compatible, but it's one of those "Vim quirks" which one has to > know: in Vim, to replace a line break by itself, you use :s/\n/\r -- i.e., > search for \n to find a line break, insert \r to add a line break.
And all these years, I've been using :s/\n/^M/ Where "^M" is typed "control-v, control-m") Usin > Don't ask me why. I can't tell you why "\n" matches newline on the "search" side of the substitute command, but inserts <00> ("null", equivalent to ^@) on the replace side. It is a mystery of life. Obviously, "\r" means "return", short for "carriage return" but "\n" seems to mean both "newline" and "null" to vim. Dave PS: While reading up on this, I discovered something new, at least to me: Save typing by using \zs and \ze to set the start and end of a pattern. For example, instead of: :s/Copyright 2007 All Rights Reserved/Copyright 2008 All Rights Reserved/ Use: :s/Copyright \zs2007\ze All Rights Reserved/2008/ How cool is that? -- 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