Vim has quite a few commands to repeat actions. For your particular situation, I'd recommend using
:normal with a range, which will perform a sequence of Normal mode commands for every line in the range.
First you need to come up with the sequence of Normal mode commands that will implement your operation. For example, if you want to always delete 15 characters starting at column 4, you can use
4l (move right 4 characters, from the start of the line), followed by
d15l (delete the next 15 characters.)
Then the last part is putting the deleted text back before the
SAC at the end. Let's say for that part you decide to use
$ to move to the end of the line, then
b to move to the beginning of the word under the cursor (moving to the beginning of
SAC), followed by
P to put before the character under the cursor position.
So now you have a sequence
4ld15l$bP that you can repeat on every line to implement your operation.
If you want to repeat it on every line of the current buffer, you can use:
If you want to only apply it to some of the lines in the current buffer, then pass it a different range to select the lines. For example, you can use a Visual block (start selecting with
V), then with the lines selected press
:, which will show you
:'<,'>, a range that corresponds to the most recent Visual selection (the lines you just highlighted.)
You can then complete the command:
Vim will perform that sequence of edits on each line of the range.
If you have a more complex sequence of commands, that perhaps might not be very convenient to type in the command-line, you could then record a macro and use that macro to pass it to
:help recording for details on recording macros.
For example, if you use
qa to start recording a macro, then perform your edit on a line, then
q to stop recording, you can then use
:%normal @a to repeat the sequence of operations in your
@a macro on every line of the buffer. If you modified the first line while recording the macro, you can either undo the changes before performing the global
:%normal @a (which will reapply it to the first line as well), or you can pass a range that will skip the first line, such as