all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "B. T. Raven" <btraven@nihilo.net>
To: help-gnu-emacs@gnu.org
Subject: Re: efficient replacing – really faster compared to using the mouse?
Date: Fri, 10 Aug 2012 13:44:15 -0500	[thread overview]
Message-ID: <k03kqj088p@news6.newsguy.com> (raw)
In-Reply-To: <mailman.6706.1344612116.855.help-gnu-emacs@gnu.org>

Die Fri Aug 10 2012 10:21:48 GMT-0500 (Central Daylight Time) Ferdinand
<Ferdinand.Gruebler@gmx.de> scripsit:

> Hi,
> 
> I am currently trying to get used to emacs.
> Before I heavily relied on TextMate (on Mac OS).
> 
> A lot of people claim that, once you learned all the shortcuts, emacs is much faster without ever using the mouse.
> 
> 
> I just ran into a problem where I really couldn't figure out how to do this with emacs at all.
> Eventually I switched back to TextMate ...
> 
> 
> So, probably I just am not aware of some key-combinations or there are other tricks I don't know, so I thought I just ask some emacs-professionals here on the list.
> 
> 
> Here is the specific problem:
> 
> I have a html table with a lot of radio buttons.
> These radio buttons have names (xyz + a number).
> Now I have to change all the numbers in the following way:
> 
> 
> - orignal:
> ----------
> 
> print("<tr>\n");
> 
>     ... something else ...
> 
> 	print("<td class='Button'> <input type='radio' name='xyz23' value='0'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz23' value='1'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz23' value='2'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz23' value='3'> </td>\n");
> 	
> print("</tr>\n");
> 
> 
> print("<tr>\n");
> 
>     ... something else ...
> 
> 	print("<td class='Button'> <input type='radio' name='xyz54' value='0'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz54' value='1'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz54' value='2'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz54' value='3'> </td>\n");
> 	
> print("</tr>\n");
> 
> [....]
> 
> 
> 
> edited:
> -------
> 
> print("<tr>\n");
> 
>     ... something else ...
> 
> 	print("<td class='Button'> <input type='radio' name='xyz1' value='0'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz1' value='1'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz1' value='2'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz1' value='3'> </td>\n");
> 	
> print("</tr>\n");
> 
> 
> print("<tr>\n");
> 
>     ... something else ...
> 
> 	print("<td class='Button'> <input type='radio' name='xyz2' value='0'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz2' value='1'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz2' value='2'> </td>\n");
> 	print("<td class='Button'> <input type='radio' name='xyz2' value='3'> </td>\n");
> 	
> print("</tr>\n");
> 
> [and so on]
> 
> 
> 
> Now in TextMate I just switch to column-mode with my mouse (by pressing alt while selecting).
> Then I draw a rectangle with the mouse to select the number behind xyz of one <tr>-block and type in the right number.
> This is fairly easy to me and quite quick.
> 
> In emacs I just have no idea how to do this in a reasonable amount of time.
> Only to navigate to the next block with C-n / C-p and to get to the right place in the line with C-b / C-f takes a lot of time.
> And then to mark the beginning (with C-space) navigate to the end to replace it ...
> 
> That is much less efficient compared to using the mouse (in my opinion).
> 
> 
> So what am I doing wrong here?
> How do you solve such edits in emacs efficiently?
> 
> 
> Thanks for any suggestions!


It depends on what you mean by a lot of radio buttons, 20 or 20000? In
your specific example it seems to me that M-% z23 z1 ent spc spc spc
spc, and likewise with the rest of names would accomplish your task as
fast in Emacs as in textmate and would even work if columns are not
aligned. An elisp programmer could probably write a short routine using
regular expressions and some kind of counter to rename 20000 blocks of 4
names ending in xyz##### into xyz%%%% where numbers ##### are not in
order and %%%% are forced to be sequential.

Ed



  parent reply	other threads:[~2012-08-10 18:44 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.6706.1344612116.855.help-gnu-emacs@gnu.org>
2012-08-10 15:40 ` efficient replacing – really faster compared to using the mouse? Carson Chittom
2012-08-10 16:46 ` Raffaele Ricciardi
2012-08-10 16:47 ` Ralf Fassel
2012-08-10 18:44 ` B. T. Raven [this message]
2012-08-11  3:50 ` rusi
2012-08-11 11:55   ` Ferdinand
2012-08-11 13:13     ` Filipp Gunbin
2012-08-12  2:49       ` Eric Abrahamsen
2012-08-10 15:21 Ferdinand
2012-08-10 16:00 ` Filipp Gunbin
2012-08-10 16:46 ` Peter Dyballa
2012-08-10 18:14 ` Aurélien Aptel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=k03kqj088p@news6.newsguy.com \
    --to=btraven@nihilo.net \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.