all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jim Porter <jporterbugs@gmail.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: [WIP PATCH] Adding more keybindings to rectangle-mark-mode-map
Date: Sat, 1 May 2021 09:02:51 -0700	[thread overview]
Message-ID: <CANh=_JFy4vAmedtBMy6EW6Ri-nNB09jpGkVYf4h2mYBahZ+QhA@mail.gmail.com> (raw)
In-Reply-To: <jwvh7jm61ou.fsf-monnier+emacs@gnu.org>

On Sat, May 1, 2021 at 6:29 AM Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>
> > One thing that always trips me up about the otherwise very nice
> > `rectangle-mark-mode-map' is that it only has a few key mappings, and
> > is notably missing `kill-rectangle' and `copy-rectangle-as-kill'.
>
> I don't understand: `kill-region` and `kill-ring-save` already
> operate on the rectangle when in `rectangle-mark-mode`, so why would you
> need keybindings for `kill-rectangle' and `copy-rectangle-as-kill'?

Hmm, trying again without my patch, I see that you're right. I think I
may have tripped myself up by assuming the conversion went from `C-x r
k' to `C-k' in `rectangle-mark-mode', similarly to `C-o' and `C-t' in
`rectangle-mark-mode'. Then when I looked at the key map for
`rectangle-mark-mode', I didn't see any relevant mappings and
incorrectly assumed I'd discovered the issue.

Perhaps it makes sense to bind `C-k' in `rectangle-mark-mode'? It
seems to be similar to `C-o' and `C-t' in that there are non-rect
bindings that already do something different, but they aren't
particularly relevant in `rectangle-mark-mode'.

>
> >   C-x r N         rectangle-number-lines
> >   C-x r c         clear-rectangle
> [...]
> >
> > As far as I'm aware, none of these have non-rect analogues that we
> > could remap
>
> How 'bout we introduce analogues that operate on the region, and we
> make them work on the rectangle when in `rectangle-mark-mode`?

That would be fine with me, although I'm not sure what (if any) keys
we'd bind them to...

> >   C-x r d         delete-rectangle
>
> For `delete-rectangle` we already have `delete-region`, and it operates
> on the rectangle when `rectangle-mark-mode` is active.
> It is not bound by default, but DEL (aka `backspace`) does delegate to
> it by default when the region is active.

Interesting, I didn't know that! I'd tried `M-x delete-region' (and
Edit -> Clear from the menu bar) and it deleted the whole,
non-rectangular region. Perhaps that's just a bug, since `M-x
kill-region' operates on the rect correctly.

> This said, I do think the way yanking rectangles works currently is not
> fully satisfactory, because it's not always clear/intuitive how where
> the rectangle will get inserted.  So maybe we do need a special yank
> command active during `rectangle-mark-mode` which replaces the selected
> rectangle with the yanked one, or something like that.

I agree. Once I tinkered with yanking rectangles a bit, it (mostly)
made sense to me, but instinctively, I wanted to select the rect to
yank into first. That works as you'd expect when the point is at the
beginning of the rect but not when it's at the end. I'm not sure what
I'd want to change though, since it works the same as yanking when you
have a non-rectangular region selected too.

- Jim



  reply	other threads:[~2021-05-01 16:02 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-01  5:23 [WIP PATCH] Adding more keybindings to rectangle-mark-mode-map Jim Porter
2021-05-01 13:29 ` Stefan Monnier
2021-05-01 16:02   ` Jim Porter [this message]
2021-05-01 17:20     ` Stefan Monnier
2021-05-01 22:31       ` Jim Porter
2021-05-02  6:57         ` Eli Zaretskii
2021-05-02 15:48           ` Jim Porter
2021-05-02 16:09             ` Eli Zaretskii
2021-05-02 16:36               ` Jim Porter
2021-05-02 18:07                 ` Stefan Monnier
2021-05-03  4:06                   ` Jim Porter
2021-05-03  7:55                     ` Andreas Schwab
2021-05-03 15:26                       ` Jim Porter
2021-05-08  1:52                         ` Stefan Monnier
2021-05-08  7:15                           ` Eli Zaretskii
2021-05-08  6:55                         ` Andreas Schwab
2021-05-08 18:57                           ` [PATCH] Improve docstring for delete-active-region (was Re: [WIP PATCH] Adding more keybindings to rectangle-mark-mode-map) Jim Porter
2021-06-18  3:09                             ` Jim Porter
2021-06-19 12:27                               ` Lars Ingebrigtsen
2021-06-19 16:28                                 ` Jim Porter
2021-05-01 17:26     ` [WIP PATCH] Adding more keybindings to rectangle-mark-mode-map Ergus

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='CANh=_JFy4vAmedtBMy6EW6Ri-nNB09jpGkVYf4h2mYBahZ+QhA@mail.gmail.com' \
    --to=jporterbugs@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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.