Loading ...
Sorry, an error occurred while loading the content.

52198RE: Supplying repeat count for part of a macro

Expand Messages
  • Trebor Sreyb
    Aug 2, 2004
    • 0 Attachment
      Thanks, Dave, block-wise seems more appropriate for my

      Only problem I've had is that my version of vim (6.2)
      does not leave my cursor where I started, using
      I{string}<ESC>. Are you sure it is supposed to return
      to the starting point?

      I noticed, however, that after the insert, `]
      (backtick-]) gets me there.

      Same with other operations (eg, x<ESC>) - I'm left at
      the ending point, not the starting point.

      I'd really like to be returned to my starting point,
      so any further suggestions appreciated.

      Others came up with solutions based more closely to my
      original approach. However, blockwise operations seems
      the most straightforward approach.


      --- Dave Eggum <deggum@...> wrote:

      > Bob,
      > Block-wise editing eliminates the need for this
      > macro:
      > see :help blockwise-operators
      > Select a visual block, type:
      > I{string}<ESC>
      > and the string you specified is inserted at the
      > begging of each visual
      > block, also, your cursor ends up where you started.
      > A{string}<ESC> is really useful too...
      > Dave
      > -----Original Message-----
      > From: Trebor Sreyb [mailto:tsreyb@...]
      > Sent: Monday, August 02, 2004 1:16 PM
      > To: vim@...
      > Subject: Supplying repeat count for part of a macro
      > I use the following definitions:
      > :let e = "kmmj.`m"
      > :map <F12> @e
      > These allow me to apply the same change in the same
      > column over a series of lines (from last line on
      > up).
      > By simply hitting F12 the desired number of times my
      > changes are applied very easily.
      > Because some of my files have lots of column-aligned
      > text, these macros have become extremely useful.
      > Also, by specifying a repeat count before pressing
      > F12, I can easily make the same edit to many lines
      > with very few keystrokes.
      > However, the final enhancement I'd like to make is
      > to
      > mark the initial cursor location (prior to the first
      > edit), apply F12 some specified number of times, and
      > finally return to the original location.
      > In other words, I'd like to do this as follows
      > (example using 15 lines to be edited):
      > 15<F12>
      > When completed, the cursor is at the same spot it
      > was
      > when I first typed the '15'.
      > But I cannot come up with a solution. I thought of
      > defining another macro that calls @e, but it would
      > need to know how many times to call @e.
      > Is there a register that saves the most recent
      > Repeat
      > Count? I can't find such a register.
      > Any suggestions welcome.
      > thanks,
      > -Bob
      > Andover, MA
      > __________________________________
      > Do you Yahoo!?
      > Yahoo! Mail - 50x more storage than other providers!
      > http://promotions.yahoo.com/new_mail

      Do you Yahoo!?
      New and Improved Yahoo! Mail - Send 10MB messages!
    • Show all 6 messages in this topic