On 16/12/08 20:12, BigAl wrote:
> How can I break out of a series of commandline commands from within
> the commandline?
>
> Here is my command line, it finds the text "XXXX" and replaces that
> text with an incremented number (variable i) up to the max replacement
> value of 3999.
> :let i=1120|%g/XXXX/s/\zsXXXX\ze/\=i/|let i=i+1|if (i>  3999)|break|
> endif
>
> Everything works great except for the "break" statement.  When the
> "break" is hit it generates an error since break is only intended for
> use with a while statement.  I've tried putting the "<Esc>" text in
> place of the break statement, I've tried inserting a ctrl-c in line...
> and I can't make any of them work.

Here's another attempt (untested)

     :let i = 1120 | %g/XXXX/s/XXXX/\=(i<4000?i:submatch(0)) | let i += 1

Alternately, you might put a try/endtry block around the argument of the 
":g" statement to catch the generated error, see
        :help :try
        :help :catch
        :help :finally


Best regards,
Tony.
-- 
"Star Wars is adolescent nonsense; Close Encounters is obscurantist
drivel; Star Trek can turn your brains to purée of bat guano; and the
greatest science fiction series of all time is Doctor Who!  And I'll
take you all on, one-by-one or all in a bunch to back it up!"
                -- Harlan Ellison

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to