all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Francis Belliveau <f.belliveau@comcast.net>
To: Sam Halliday <sam.halliday@gmail.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: pushing and popping the mark
Date: Sat, 9 May 2015 08:49:48 -0400	[thread overview]
Message-ID: <D6717BFB-2D9A-4633-8054-A7079C9D9F2C@comcast.net> (raw)
In-Reply-To: <1e6c5c11-44fe-4b97-bef0-20149b34619b@googlegroups.com>

Sam,

First let me say that emacs is so engrained in my finger tips that I find it difficult to decipher keystroke speak.  I do not have time to try your keystrokes to get the fill feel of what your are doing.

Although I do not fully follow what you are doing, two things come to mind.

First would C-X C-X (swap point and mark) rather than C-U C-Space (pop mark) to help reduce things a little.  It is certainly easier to type.

Second, whenever I have something repetitive like this to do, I usually define a temporary keyboard macro to help out.  You just need to be creative about where in the process the macro starts and ends.

I would think something like:
1. Position curser at yank location.
2. C-Space to mark the location
3. Position curser at start of cut location.
4. Mark and select text to be cut.
5. C-X( to start keyboard macro.
6. C-W to cut the text
7. C-X C-X to swap to paste location
8. C-Y to yank the text
9. C-X) to end keyboard macro.

Now you have.
  A. Perform the first 4 steps.
  B. C-Xe to execute the macro.

As opposed what I see as your 7 steps, this takes 9 steps the first time, then 5 steps  for every repeat after that.
Not much of a savings, but with a lot of repeats it does helps and it certainly gets around the finger tangles.

The one that I use a lot is to paste something at the beginning of a line like when turning an enumerated list into a switch statement:
After priming the pump with a "M-W C-E :” I create a macro that looks something like:
C-N C-A C-Y C-E:

Fran


> On May 9, 2015, at 7:30 AM, Sam Halliday <sam.halliday@gmail.com> wrote:
> 
> To answer my own question, with an alternative, below:
> 
> On Saturday, 9 May 2015 12:18:39 UTC+1, Sam Halliday  wrote:
>> I have found myself doing some repetitive editing recently that I am sure can be optimised.
>> 
>> Let's say I have a chunk of existing text (in the middle of the buffer), and a bunch of new text (at the bottom of the buffer) with bits of text that I want to selectively kill and then yank into the existing text.
>> 
>> So the workflow looks like this:
>> 
>> 1. go to "new text", kill some relevant text
>> 2. go to "existing text", yank
>> 3. repeat
>> 
>> 
>> In terms of keys strokes this means:
>> 
>> 1. `C-U SPACE` (now near relevant "new text") then unavoidable manual keystrokes to select/kill
>> 2. `C-SPACE C-SPACE`, then `C-U SPACE` (does nothing) to add this location to the mark ring and ignore that mark in the ring.
>> 3. `C-U SPACE` (now near relevant "existing text") then unavoidable manual keystrokes to yank
>> 4. `C-SPACE C-SPACE`, then `C-U SPACE` (does nothing) to add this location to the mark ring
>> 
>> Actually, my fingers can confused and end up just using pageup/down :-/
>> 
>> Obviously, steps 2 and 4 are undesirable. Is there a single command that I can perform to effectively save the current point, then go to the second mark in the mark ring?
> 
> 
> The workflow can also be optimised by opening a second frame into the same buffer. That helps a lot because `C-x o` then jumps to approximately the locations where I was wanting to set the marks anyway. However, it then requires me to split my screen... which is sometimes not ideal.




  reply	other threads:[~2015-05-09 12:49 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-09 11:18 pushing and popping the mark Sam Halliday
2015-05-09 11:30 ` Sam Halliday
2015-05-09 12:49   ` Francis Belliveau [this message]
     [not found]   ` <mailman.2663.1431175800.904.help-gnu-emacs@gnu.org>
2015-05-09 21:08     ` Sam Halliday
2015-05-09 21:15       ` Drew Adams
     [not found]       ` <mailman.2680.1431206116.904.help-gnu-emacs@gnu.org>
2015-05-09 22:04         ` Sam Halliday
2015-05-09 21:47 ` Emanuel Berg
2015-05-09 22:11   ` Sam Halliday
2015-05-09 22:34     ` Emanuel Berg
2015-05-10  0:02     ` Drew Adams
     [not found]     ` <mailman.2683.1431216187.904.help-gnu-emacs@gnu.org>
2015-05-10  1:59       ` Emanuel Berg
2015-05-10 13:41     ` Jude DaShiell
  -- strict thread matches above, loose matches on Subject: below --
2015-05-09 15:03 Jude DaShiell

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=D6717BFB-2D9A-4633-8054-A7079C9D9F2C@comcast.net \
    --to=f.belliveau@comcast.net \
    --cc=help-gnu-emacs@gnu.org \
    --cc=sam.halliday@gmail.com \
    /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.