Niki Kovacs
2009-Oct-05 09:34 UTC
[CentOS] Slightly OT: Vim command (or macro) to replace space under cursor by " " (without deleting the following word)
Hi,
I'm using Vim to edit some static XHTML pages.
I have to (manually) check for non-breakable spaces in my text, and
eventually replace simple spaces by the following character sequence:
Usually, when I perform the same operation over and over in a text, I do
it once, and then repeat it in command mode using [.]. But I can't
figure out how to do this here.
Here's what the according macro would look like. Pressing F2 would
replace the space under the cursor by " " :
:map <F2> cw <ESC>
... except this also deletes the word after the cursor, which is annoying.
Any suggestions ?
Cheers,
Niki
Alfred von Campe
2009-Oct-05 10:23 UTC
[CentOS] Slightly OT: Vim command (or macro) to replace space under cursor by " " (without deleting the following word)
On Oct 5, 2009, at 5:34, Niki Kovacs wrote:> Here's what the according macro would look like. Pressing F2 would > replace the space under the cursor by " " : > > :map <F2> cw <ESC> > > ... except this also deletes the word after the cursor, which is > annoying. > > Any suggestions ?Have you tried the "s" command (substitute) instead of "cw"? Alfred
John R Pierce
2009-Oct-05 16:10 UTC
[CentOS] Slightly OT: Vim command (or macro) to replace space under cursor by " " (without deleting the following word)
Niki Kovacs wrote:> :map <F2> cw <ESC> > > ... except this also deletes the word after the cursor, which is annoying. >c1l <esc> thats digit 1, lower case letter L, lower L being the move left command. the 1 is uneeded, but c3l would change 3 characters, etc. btw, my favorite way of doing what you said would be... / <enter> c1l then n to find the next space, and . to execute the change op. you sure don't want to change spaces that are inside < > commands, so a global change and replace is not suitable.