Re: Re: Ilisp FSF key binding changes

Hannu Koivisto <[email protected]>
Newsgroups gmane.lisp.ilisp.devel
Message-ID <[email protected]>
"Clementson, Bill" <[email protected]> writes:

> From: Hannu Koivisto [mailto:[email protected]] 
>> These are starting to look usable but I must add a few 
>> comments below.  This is actually the first time I'm really 
>> taking a good look at these.  Great work in any case.
>> 
>> > Compile bindings (C-c C-k):
>> > C-c C-k C-f	compile-file-lisp
>> > C-c C-k C-@	compile-changes-lisp
>> 
>> Why C-@ instead of C-c?  C-@ involves pressing two modifiers 
>> on my keyboard :\  Not that I use compile-changes-lisp...
>
> I wanted a key that could be used consistently across the other prefixes
> to indicate "changes"-related commands. Unfortunately, there wasn't an
> alphabetic choice that worked well. My first choice was "*" but that
> character can't be used in a control key sequence while "@" can. The
> following commands are all "changes" commands and are on different
> prefix bindings:
> C-c C-k C-f	compile-file-lisp
> C-c C-j C-@	eval-changes-lisp
> C-c C-v C-@	list-changes-lisp
> C-c C-v @	clear-changes-lisp

Ah, I didn't consider this.  Now that I have, I still think C-c C-k
C-c and C-c C-j C-c would be better bindings.  I think consistency
doesn't comfort much if the bindings are very inconvenient.

> [snip]
>
>> > Query bindings (C-c C-q):
>> 
>> I would have expected to find these under C-c C-h since C-h 
>> is the help prefix (under which are also things like describe 
>> and apropos) in Emacs.  A lot faster and easier to hands to 
>> type as well (the same issue as with C-e/C-j), IMO.  I'd like 
>> to suggest changing this.  YMMV.  (I'm aware of what Coding 
>> Conventions say about this, so no need to tell me that.)
>
> I had originally used C-c C-h but replaced it when it was pointed out to
> me that it conflicts with the FSF coding conventions. One of the
> objectives of this exercise was to create bindings that were compliant
> with the FSF major mode coding conventions and I didn't want to
> (knowingly) violate any of the standard conventions since this always
> causes problems for somebody.

There is always someone to whom something causes problems.  I think
it's silly to follow all the conventions just for convetions' sake.
Note the reasoning: "If you don't bind `C-h', it is automatically
available as a help character for listing the subcommands of the
prefix character."  This doesn't even seem to be true, I couldn't
find a single mode where C-c C-h would have listed the subcommands
of the prefix character (something like C-c RET C-h does work for
example in message-mode, though.)  Not very surprising, there are
often oodles of commands behind C-c.  I'd expect that in this case
the user really wants C-h m.

I can certainly appreciate that the choice to avoid C-h is
consistent with your aim to purity.  Purity is not a problem for
me, I can always change the bindings for myself.  But I don't agree
with it.  You chose consistency over convenience in the
"changes"-related commands -case and you chose to avoid C-c C-f
because in XEmacs it is bound by default to something that I can't
believe no one could possibly want to, or even could, use in the
case of ILISP.  Heck, even core XEmacs modes seem to override it.
Not exactly surprising, I can't understand why they bind C-c C-f to
such a command by default to begin with.

> Even if you use the eldoc-like funcitonality when entering new code, the
> arglist-lisp binding is useful when you are examining existing code and
> want to know what the argument list is for a function.

Actually, if there was eldoc support, it would show arguments even
for existing code (eldoc is different from
ilisp-arglist-message-lisp-space in this respect).  But I agree,
C-a is a good choice for arglist-lisp.  apropos can be put to C-c
C-q a, for example.

> I have just received an email from Kevin Rosenberg indicating that C-c
> C-f conflicts with a comint binding in xemacs. Therefore, I have changed
> the prefix (yet again) from C-c C-f to C-c C-v. The changes have now
> been posted to cvs.

As mentioned above, I disagree with this change.  But we can agree
to disagree.

>> I'd almost call these Backtrace bindings and have C-c 
>> C-<something> for other debug bindings, when there is need.  
>> Or maybe just say that there are debug bindings under C-c C-b 
>> and C-c C-<something>, because there is overlap anyway.  It's 
>> just that most of these involve fiddling with the backtrace 
>> and they pretty much eat the bindings from any reasonable debugger.
>
> I don't understand this comment - what "reasonable debugger" for CL are
> you referring to that sets up its own emacs bindings?

That's not what I meant.  I meant that the current C-c C-b -list
lacks several commands that are provided by good debuggers and it
should be ensured that good keybindings can be arranged for them.
For example, the list does not contain any commands for setting
[temporary] breakpoints and watchpoints, it contains only one step
command, etc.  I think that another prefix needs to be used for
these, there simply isn't room in C-c C-b map.

-- 
Hannu


-------------------------------------------------------
This SF.net email is sponsored by: ObjectStore.
If flattening out C++ or Java code to make your application fit in a
relational database is painful, don't do it! Check out ObjectStore.
Now part of Progress Software. http://www.objectstore.net/sourceforge
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.