Unable to replace a space with a new line in Vim

I know the thread.

I run

:%s/ /s/\n/g

I get

E488: Trailing characters

2nd example

I run

:%s/ /\n/g

I get

text^@text

I run the same codes also with the following settings separetaly

set fileformat=unix

and

set fileformat=dos

How can you replace with a new line in Vim?


:%s/ /Ctrl vReturn/g

Where Ctrl v is Control-key plus key v and Return is the return key (the one on the main keyboard, not the enter key on the numpad). The other characters are typed as usual.

If this is entered correctly, the sequence Ctrl vReturn will display as the characters ^M, typically in a different color, to indicate that they are special. Note that actually typing ^M will not work.

Also note that in Vim for windows, it's Control-q instead of Control-v (as that is paste).


Ctrl-v also allows entering other "special" keys via the keyboard. It is also useful for e.g. Tab or Backspace.


Try

%s/ /\r/g

Enter the following:

:s/ /

and now type Ctrl-V or Ctrl-Q (depends on your configuration) and hit the Enter key. You should now have:

:s/ /^M

Finish it off:

:s/ /^M/g

and you are good to go.


Specifically to answer your problem with trailing characters, this is the regex you specified:

:%s/ /s/\n/g

You have too many /. What happens is that you replace ' ' with s, and then you tag on this after the substitution: \n/g

I think you meant this:

:%s/ \s/\n/g

Note that your /s was changed to \s. Now the substitution will replace one space followed by one whitespace of any kind (space or tab) with \n. I doubt if this solve the problem or replacing space with a newline, but it should explain the error message.


Try either

For Unix:

:1,$s/\ /\n/g

For Windows:

:1,$s/\ /\r/g

This contains an escape character for the space.