views:

61

answers:

2

In a one line Vim ex command:

I am trying to do a command and then move to another location and execute the same command.

is there any way to move the cursor position (need both left/right and up/down)?

+2  A: 

Your question is not completely clear but I think you mean to use recording. I hope you know h,j,k,l movement commands. Try this:

    <goto command mode>
    qa
    i
    dddd
    <esc>
    j
    q
    @a

qa is the command to start recording in the buffer a. q is used to stop recording. You can use the buffer a by @a. Also try 10@a to do the operation 10 times.

Amit Kumar
Can you do a substitution command in a "recording"?
Trevor Boyd Smith
yes, sure. why not
Amit Kumar
+2  A: 

The '|' is the command separator in Vim scripts.

:command the_first | second command

executes two commands.

There is also the :normal command which allows you to execute normal mode commands, like motion commands, from the Ex command line. So maybe you can do something like

:s/A/B | normal 32G5w | /pat.*$/d

There's probably an easier way to do what you're trying to do, however, if you can be more specific.

Steve K
Normal does not allow to use another commands after it, so you will have to use `:execute`. And you do not have closing `/` in substitute.
ZyX