bongo-devel
[Top][All Lists]
Advanced

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

Re: [bongo-devel] Re: Marks


From: Daniel Brockman
Subject: Re: [bongo-devel] Re: Marks
Date: Mon, 09 Apr 2007 18:40:05 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.92 (gnu/linux)

address@hidden (Daniel Jensen) writes:

>>>> I wonder why it's called `universal argument', though...
>>>
>>> I don't know, C-u is a universal argument but it cannot
>>> be /the/ universal argument. We should let M-& be one too.
>>> I agree that the name can be more clear on what the command
>>> actually does.
>>
>> So each command would have to implement support for `M-&'?
>
> No, but it's used like C-u in that it modifies how a
> command operates. It's not an actual argument, so it
> might make sense to call it something else.

Okay.  I see what you mean now.

> I take back that it's not a good idea to extend it to use
> a prefix or the region, I didn't really think about it.
> If it's not in the way, then I don't mind.

Cool.

> This means maybe that it should not do anything special
> when there is no prefix and no region.

Do you mean `no prefix, no region, and no marking'?

> I don't know if it is always good to kill the marking
> before iterating through the lines -- can you think of
> examples of when it messes things up or when it helps not
> to mess up?

First of all, this is a difficult and subtle argument about
a rather obscure command.  None of it is obvious in any way.
Nonetheless, I want this feature to be as good as possible.
Thank you for engaging in the discussion.  Here is my view.

I think `M-&' should mean "use the prefix/region/marking
convention," and I believe that `M-&' should "consume" the
p/r/m, just as commands like `e' and `c' and `k' do ---
if it doesn't, there will sometimes be two mechanisms trying
to use the p/r/m at the same time, mutually interfering.

With commands that do not interfere, there is no problem.
For example, `M-& r' would do the same whether we deactivate
the p/r/m _before_ or _after_ running `r' on each track line,
because `r' does not itself care about the p/r/m.

For a command such as `k', there is a subtle difference.
If `M-&' leaves the p/r/m, `M-& k' will be the same as `k',
given some active p/r/m.  I would like `M-& k' to behave
exactly as would moving to each track line in the p/r/m in
turn and hitting `k' (i.e., I want it to produce separate
kills instead of a clump kill).

This would be more _consistent_, because `M-& <foo>' would
always run the p/r/m-stipped command _once_ for each line in
the p/r/m, instead of running the full command once for each
line in the p/r/m, which will sometimes result in N actions,
sometimes in N x M actions, and sometimes will just be weird.

(Imagine a command that uses the active marking in some way,
but does not kill it.  Unless `M-&' kills the marking before
executing the command, such a command would use _the whole
marking_, in some way, _once for each_ marked track line.)

However, it would also be more _useful_, simply because it
is more useful for `M-& k' to do something other than `k'
than it is for the two commands to behave exactly the same.

People will not type `M-& <foo>' for no reason.  People will
type it expecting `M-&' to force some convention on `<foo>'.
That's my intuition about this and what I would expect.

What do you think?

(In the end, `M-& r', which is probably representative of the
most common use case for this feature, will work the same.)


Best regards,

-- 
Daniel Brockman <address@hidden>




reply via email to

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