unofficial mirror of emacs-devel@gnu.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

  List information: https://www.gnu.org/software/emacs/

* 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 public inbox

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

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).