Emacs users: Ever create a switch with consecutive numbers? Set up a table or list with consecutive
numbers? Here's a handy pair of macros. I don't use the char-repseq as much as I use the num-repseq
routine-- but every time I use either of them, I am very thankful they are around! I usually start
by setting up prototype lines, where something like 'ZZZZ' is where I want the numbers:
case ZZZZ:
case ZZZZ:
case ZZZZ:
case ZZZZ:
case ZZZZ:
now, put a region around this text, and go to the top of it. alt-x num-repseq and it will prompt
you for the start number, the increment, and the number in a set. I use %d most often as the format,
and if you hit return, it will be the default format. Otherwise, you could use %x, %o, or %05d for that matter.
if I supply start num: 1005, increment 5, in groups of 1, format %d, and I'll get:
case 1005:
case 1010:
case 1015:
case 1020:
case 1025:
Paste these in your .emacs file:
(defun char-repseq (repl start inc grp) "looks for repl, replaces with char
start, then start+inc, in groups of grp
etc. until repl not found"
(interactive "sReplace? \ncStart Char? \nnIncrement? \nnIn Groups of: ")
(let ((count 0)(ok-flag t))
(while ok-flag
(while (and (< count grp) (setq ok-flag (re-search-forward repl nil t)))
(replace-match (char-to-string start) t t)
(setq count (1+ count)))
(setq count 0)
(setq start (+ start inc)))
))
(defun num-repseq (repl start inc grp format) "looks for repl, replaces with char
start, then start+inc, in groups of grp
etc. until repl not found"
(interactive "sReplace? \nnStart Num? \nnIncrement? \nnIn Groups of: \nsFormat: ")
(if (not format)
(setq format "%d"))
(let ((count 0)(ok-flag t))
(while ok-flag
(while (and (< count grp) (setq ok-flag (re-search-forward repl nil t)))
(replace-match (format format start) t t)
(setq count (1+ count)))
(setq count 0)
(setq start (+ start inc)))
))