emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [WIP PATCH] Adding more keybindings to rectangle-mark-mode-map


From: Stefan Monnier
Subject: Re: [WIP PATCH] Adding more keybindings to rectangle-mark-mode-map
Date: Sat, 01 May 2021 13:20:06 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

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

I don't have an opinion on that.

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

Oh, no, you're right: it's not done in `delete-region` (which is
a fairly low-level function and hence not ideal to piggy-back such
high-level UI functionality), but in `backward-delete-char-untabify`.
Whether it kills or deletes (or just does the good old backspace)
depends on `delete-active-region`.

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

There's an argument to be made for making `C-y` replace the region
when active, as well, indeed.


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]