unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Column replace
@ 2007-06-12  8:48 Enchanter
  2007-06-12  9:55 ` Juanma Barranquero
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Enchanter @ 2007-06-12  8:48 UTC (permalink / raw)
  To: help-gnu-emacs

How to replace this?

From:

text ts
text ts
text ts
text ts
text ts
text ts
text ts

to:
text ts0
text ts1
text ts2
text ts3
text ts4
text ts5
text ts6

Thanks

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12  8:48 Column replace Enchanter
@ 2007-06-12  9:55 ` Juanma Barranquero
  2007-06-12 10:39 ` Peter Dyballa
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 16+ messages in thread
From: Juanma Barranquero @ 2007-06-12  9:55 UTC (permalink / raw)
  To: Enchanter; +Cc: help-gnu-emacs

On 6/12/07, Enchanter <ensoul.magazine@gmail.com> wrote:
> How to replace this?
>
> From:
>
> text ts
> text ts
> text ts
> text ts
> text ts
> text ts
> text ts
>
> to:
> text ts0
> text ts1
> text ts2
> text ts3
> text ts4
> text ts5
> text ts6

Put the cursor after the first line, i.e.:

text ts[]

and type F3 F3 down F4 Ctrl-5 F4

Afterwards, I'd recommend reading the docs for kmacro.

             Juanma

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12  8:48 Column replace Enchanter
  2007-06-12  9:55 ` Juanma Barranquero
@ 2007-06-12 10:39 ` Peter Dyballa
  2007-06-12 10:54   ` Juanma Barranquero
  2007-06-12 17:37 ` deprecated
  2007-06-12 21:38 ` Colin S. Miller
  3 siblings, 1 reply; 16+ messages in thread
From: Peter Dyballa @ 2007-06-12 10:39 UTC (permalink / raw)
  To: Enchanter; +Cc: help-gnu-emacs


Am 12.06.2007 um 10:48 schrieb Enchanter:

> How to replace this?


M-x replace-regexp RET ^.*$ RET \&\# RET

--
Mit friedvollen Grüßen

   Pete

Without vi there is only GNU Emacs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12 10:39 ` Peter Dyballa
@ 2007-06-12 10:54   ` Juanma Barranquero
  2007-06-12 11:11     ` Peter Dyballa
  0 siblings, 1 reply; 16+ messages in thread
From: Juanma Barranquero @ 2007-06-12 10:54 UTC (permalink / raw)
  To: Peter Dyballa; +Cc: help-gnu-emacs, Enchanter

On 6/12/07, Peter Dyballa <Peter_Dyballa@web.de> wrote:

> M-x replace-regexp RET ^.*$ RET \&\# RET

Very cool.

But what if the result shoud be

text ts100
text ts101
...

?

             Juanma

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12 10:54   ` Juanma Barranquero
@ 2007-06-12 11:11     ` Peter Dyballa
  2007-06-12 11:16       ` Juanma Barranquero
       [not found]       ` <mailman.1999.1181646983.32220.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 16+ messages in thread
From: Peter Dyballa @ 2007-06-12 11:11 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: help-gnu-emacs, Enchanter


Am 12.06.2007 um 12:54 schrieb Juanma Barranquero:

> But what if the result shoud be
>
> text ts100
> text ts101
> ...

M-x replace-regexp RET ^.*$ RET \&\,(+ 100 \#) RET

\# stands for replace-count. The TO expression can contain in GNU  
Emacs 22 a function, with formats or such.

--
Greetings

   Pete     === -Q
              ==<__/% >>
_____________(_)____@_____________________________

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12 11:11     ` Peter Dyballa
@ 2007-06-12 11:16       ` Juanma Barranquero
       [not found]       ` <mailman.1999.1181646983.32220.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 16+ messages in thread
From: Juanma Barranquero @ 2007-06-12 11:16 UTC (permalink / raw)
  To: Peter Dyballa; +Cc: help-gnu-emacs, Enchanter

On 6/12/07, Peter Dyballa <Peter_Dyballa@web.de> wrote:

> M-x replace-regexp RET ^.*$ RET \&\,(+ 100 \#) RET

Nice, and obviously quite powerful.

For simple cases like the one the OP asked for, I'd suggest kmacro though.

             Juanma

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
       [not found]       ` <mailman.1999.1181646983.32220.help-gnu-emacs@gnu.org>
@ 2007-06-12 12:49         ` weber
  2007-06-12 13:43           ` Juanma Barranquero
       [not found]           ` <mailman.2008.1181655831.32220.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 16+ messages in thread
From: weber @ 2007-06-12 12:49 UTC (permalink / raw)
  To: help-gnu-emacs

On 12 jun, 08:16, "Juanma Barranquero" <lek...@gmail.com> wrote:
> On 6/12/07, Peter Dyballa <Peter_Dyba...@web.de> wrote:
>
> > M-x replace-regexp RET ^.*$ RET \&\,(+ 100 \#) RET
>
> Nice, and obviously quite powerful.
>
> For simple cases like the one the OP asked for, I'd suggest kmacro though.
>
>              Juanma

I didn't get the macro solution... I guess you're assuming some
special shortcuts?
Can you please tell me which commands are  you running on each of
them ?
Thanks
weber

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12 12:49         ` weber
@ 2007-06-12 13:43           ` Juanma Barranquero
       [not found]           ` <mailman.2008.1181655831.32220.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 16+ messages in thread
From: Juanma Barranquero @ 2007-06-12 13:43 UTC (permalink / raw)
  To: weber; +Cc: help-gnu-emacs

On 6/12/07, weber <hugows@gmail.com> wrote:

> I didn't get the macro solution... I guess you're assuming some
> special shortcuts?
> Can you please tell me which commands are  you running on each of
> them ?

No special shortcuts. In Emacs 22.1, F3 is
`kmacro-start-macro-or-insert-counter' and F4 is
`kmacro-end-or-call-macro'. See the file kmacro.el in the Emacs lisp
source directory, and the "Keyboard Macros" node in the info docs.

             Juanma

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
       [not found]           ` <mailman.2008.1181655831.32220.help-gnu-emacs@gnu.org>
@ 2007-06-12 14:14             ` weber
  2007-06-12 14:59               ` Juanma Barranquero
       [not found]               ` <mailman.2022.1181660385.32220.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 16+ messages in thread
From: weber @ 2007-06-12 14:14 UTC (permalink / raw)
  To: help-gnu-emacs

On 12 jun, 10:43, "Juanma Barranquero" <lek...@gmail.com> wrote:
> On 6/12/07, weber <hug...@gmail.com> wrote:
>
> > I didn't get the macro solution... I guess you're assuming some
> > special shortcuts?
> > Can you please tell me which commands are  you running on each of
> > them ?
>
> No special shortcuts. In Emacs 22.1, F3 is
> `kmacro-start-macro-or-insert-counter' and F4 is
> `kmacro-end-or-call-macro'. See the file kmacro.el in the Emacs lisp
> source directory, and the "Keyboard Macros" node in the info docs.
>
>              Juanma

That is very cool!
Is there an easy way to start in 100, for example? What about
decreasing? Or counting at 2 increments?
TIA
weber

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12 14:14             ` weber
@ 2007-06-12 14:59               ` Juanma Barranquero
       [not found]               ` <mailman.2022.1181660385.32220.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 16+ messages in thread
From: Juanma Barranquero @ 2007-06-12 14:59 UTC (permalink / raw)
  To: weber; +Cc: help-gnu-emacs

On 6/12/07, weber <hugows@gmail.com> wrote:

> Is there an easy way to start in 100, for example?

C-100 F3 ...

> What about decreasing?

C-100 F3 C-- C-5 F3 ...

> Or counting at 2 increments?

C-100 F3 C-2 F3 ...

I'd really recommend reading the docs.

             Juanma

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
       [not found]               ` <mailman.2022.1181660385.32220.help-gnu-emacs@gnu.org>
@ 2007-06-12 16:11                 ` weber
  2007-06-12 17:00                   ` weber
  2007-06-12 18:02                   ` Juanma Barranquero
  0 siblings, 2 replies; 16+ messages in thread
From: weber @ 2007-06-12 16:11 UTC (permalink / raw)
  To: help-gnu-emacs

On 12 jun, 11:59, "Juanma Barranquero" <lek...@gmail.com> wrote:
> On 6/12/07, weber <hug...@gmail.com> wrote:
>
> > Is there an easy way to start in 100, for example?
>
> C-100 F3 ...
>
> > What about decreasing?
>
> C-100 F3 C-- C-5 F3 ...
>
> > Or counting at 2 increments?
>
> C-100 F3 C-2 F3 ...
>
> I'd really recommend reading the docs.
>
>              Juanma

Ok, i read the docs.. but there is still one thing i'm not able to do:
siga(0) <= siga(0);
siga(1) <= siga(1);
siga(2) <= siga(2);
...

Is there a way to insert the current counter value without
incrementing it?
(I know I could just yank and paste the value inside the macro, but
that would be less elegant)

TIA,
weber

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12 16:11                 ` weber
@ 2007-06-12 17:00                   ` weber
  2007-06-12 18:02                   ` Juanma Barranquero
  1 sibling, 0 replies; 16+ messages in thread
From: weber @ 2007-06-12 17:00 UTC (permalink / raw)
  To: help-gnu-emacs

On 12 jun, 13:11, weber <hug...@gmail.com> wrote:
> On 12 jun, 11:59, "Juanma Barranquero" <lek...@gmail.com> wrote:
>
>
>
> > On 6/12/07, weber <hug...@gmail.com> wrote:
>
> > > Is there an easy way to start in 100, for example?
>
> > C-100 F3 ...
>
> > > What about decreasing?
>
> > C-100 F3 C-- C-5 F3 ...
>
> > > Or counting at 2 increments?
>
> > C-100 F3 C-2 F3 ...
>
> > I'd really recommend reading the docs.
>
> >              Juanma
>
> Ok, i read the docs.. but there is still one thing i'm not able to do:
> siga(0) <= siga(0);
> siga(1) <= siga(1);
> siga(2) <= siga(2);
> ...
>
> Is there a way to insert the current counter value without
> incrementing it?
> (I know I could just yank and paste the value inside the macro, but
> that would be less elegant)
>
> TIA,
> weber

Errata: I meant something like
signalA(0) <= signalB(0);
signalA(1) <= signalB(1);
signalA(2) <= signalB(2);
Not siga(0) <= siga(0) :)

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12  8:48 Column replace Enchanter
  2007-06-12  9:55 ` Juanma Barranquero
  2007-06-12 10:39 ` Peter Dyballa
@ 2007-06-12 17:37 ` deprecated
  2007-06-13 21:01   ` Peter Lee
  2007-06-12 21:38 ` Colin S. Miller
  3 siblings, 1 reply; 16+ messages in thread
From: deprecated @ 2007-06-12 17:37 UTC (permalink / raw)
  To: help-gnu-emacs

Just in case anyone was worried that emacs has only two solutions to
this problem, there is a third way ..... :)

On Jun 12, 3:48 am, Enchanter <ensoul.magaz...@gmail.com> wrote:
> How to replace this?
>
> From:
>
> text ts
> text ts
> text ts
> text ts
> text ts
> text ts
> text ts
>
> to:
> text ts0
> text ts1
> text ts2
> text ts3
> text ts4
> text ts5
> text ts6
>

Turn on CUA mode (M-x cua-mode)

Move to the end of the first line and type C-return (cua-set-rectangle-
mark).

Now move to the end of the last line and type M-n (cua-sequence-
rectangle). You will be prompted for a starting value, an increment
and a format string.

[Only tested in emacs 22]

Cheers

Will

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12 16:11                 ` weber
  2007-06-12 17:00                   ` weber
@ 2007-06-12 18:02                   ` Juanma Barranquero
  1 sibling, 0 replies; 16+ messages in thread
From: Juanma Barranquero @ 2007-06-12 18:02 UTC (permalink / raw)
  To: weber; +Cc: help-gnu-emacs

On 6/12/07, weber <hugows@gmail.com> wrote:

> Ok, i read the docs.. but there is still one thing i'm not able to do:
> siga(0) <= siga(0);
> siga(1) <= siga(1);
> siga(2) <= siga(2);
> ...
>
> Is there a way to insert the current counter value without
> incrementing it?

F3 "signalA(" F3 ") <= signalB(" C-u F3 ")" RET F4
F4 F4...

I'd *really* recommend reading the docs. That's clearly described in
the docstring for `kmacro-start-macro-or-insert-counter', which you
can access with C-h k f3.



             Juanma

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12  8:48 Column replace Enchanter
                   ` (2 preceding siblings ...)
  2007-06-12 17:37 ` deprecated
@ 2007-06-12 21:38 ` Colin S. Miller
  3 siblings, 0 replies; 16+ messages in thread
From: Colin S. Miller @ 2007-06-12 21:38 UTC (permalink / raw)
  To: help-gnu-emacs

Enchanter wrote:
> How to replace this?
> 
> From:
> 
> text ts
> text ts
> text ts
> text ts
> text ts
> text ts
> text ts
> 
> to:
> text ts0
> text ts1
> text ts2
> text ts3
> text ts4
> text ts5
> text ts6
> 
> Thanks
> 
Enchanter,

there's more than one way to skin the cat,
this is how you do it using registers.

Key binding are for XEmacs;
YMMV on Emacs.

Move to the first line and enter

C-u 10 C-x r n a
C-x ( END C-x r i a C-x r + a HOME DOWN C-x )
C-u 5 C-x e


The bindings are
C-x r n    number-to-register
C-x r i    insert-register
C-x r +    increment-register

increment-register defaults to 1; it can take
an integer prefix for decrementing or incrementing
by other values.



HTH,
Colin S. Miller

-- 
Replace the obvious in my email address with the first three letters of the hostname to reply.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Column replace
  2007-06-12 17:37 ` deprecated
@ 2007-06-13 21:01   ` Peter Lee
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Lee @ 2007-06-13 21:01 UTC (permalink / raw)
  To: help-gnu-emacs

>>>> deprecated  writes:

    > Just in case anyone was worried that emacs has only two solutions to
    > this problem, there is a third way ..... :)

Don't know where I got this, but this is what I use:

(defun another-line (num-lines)
  "Copies line, preserving cursor column, and increments any numbers found.
Copies a block of optional NUM-LINES lines.  If no optional argument is given,
then only one line is copied."
  (interactive "p")
  (if (not num-lines) (setq num-lines 0) (setq num-lines (1- num-lines)))
  (let* ((col (current-column))
         (bol (save-excursion (forward-line (- num-lines)) (beginning-of-line) (point)))
         (eol (progn (end-of-line) (point)))
         (line (buffer-substring bol eol)))
    (goto-char bol)
    (while (re-search-forward "[0-9]+" eol 1)
      (let ((num (string-to-number (buffer-substring
                                 (match-beginning 0) (match-end 0)))))
        (replace-match (int-to-string (1+ num))))
      (setq eol (save-excursion (goto-char eol) (end-of-line) (point))))
    (goto-char bol)
    (insert line "\n")
    (move-to-column col)))
(global-set-key (kbd "M-O") 'another-line)

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2007-06-13 21:01 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-12  8:48 Column replace Enchanter
2007-06-12  9:55 ` Juanma Barranquero
2007-06-12 10:39 ` Peter Dyballa
2007-06-12 10:54   ` Juanma Barranquero
2007-06-12 11:11     ` Peter Dyballa
2007-06-12 11:16       ` Juanma Barranquero
     [not found]       ` <mailman.1999.1181646983.32220.help-gnu-emacs@gnu.org>
2007-06-12 12:49         ` weber
2007-06-12 13:43           ` Juanma Barranquero
     [not found]           ` <mailman.2008.1181655831.32220.help-gnu-emacs@gnu.org>
2007-06-12 14:14             ` weber
2007-06-12 14:59               ` Juanma Barranquero
     [not found]               ` <mailman.2022.1181660385.32220.help-gnu-emacs@gnu.org>
2007-06-12 16:11                 ` weber
2007-06-12 17:00                   ` weber
2007-06-12 18:02                   ` Juanma Barranquero
2007-06-12 17:37 ` deprecated
2007-06-13 21:01   ` Peter Lee
2007-06-12 21:38 ` Colin S. Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).