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:

> Let me know if these bindings look better than the previous ones. If I
> don't hear any complaints, I'll upload these mods to cvs in the next day

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

> C-c C-k C-d	compile-defun-lisp
> C-c C-k C-b	ilisp-compile-buffer
> C-c C-k C-r	compile-region-lisp
>
> Eval bindings (C-c C-j):

An excellent choice.

> C-c C-j C-@	eval-changes-lisp

See the comment for C-c C-k C-@.

> C-c C-j C-l	eval-last-sexp-lisp
> C-c C-j C-n	eval-next-sexp-lisp
> C-c C-j C-d	eval-defun-lisp
> C-c C-j C-r	eval-region-lisp
>
> 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.)

> C-c C-q C-c	cltl2-lookup
> C-c C-q C-h	hyperspec-lookup
> C-c C-q C-o	documentation-lisp
> C-c C-q C-a	arglist-lisp

Admittedly it is logical for C-a to be bound to arglist-lisp, but
there is also apropos, which in Emacs is bound to C-h a.  Perhaps
one could consider C-c C-h a assuming the C-q -> C-h change.  On
the other hand, maybe ilisp-arglist-message-lisp and eldoc kind of
things are gradually making a binding for arglist-lisp less used,
which might suggest that even C-a could be used for something else
than arglist-lisp.  Then again, perhaps not everyone likes to use
eldoc sort of stuff...

> C-c C-q TAB	inspect-lisp
> C-c C-q C-d	describe-lisp
>
> Buffer/Edit bindings (C-c C-g):

[Later discussion reveals that these have been moved to C-c C-f.]

These are probably the most difficult bindings, so I won't comment
them now but think of them a bit longer.

> C-c C-g C-l	load-file-lisp
> C-c C-g TAB	select-ilisp
> C-c C-g C-c	call-defun-lisp
> C-c C-g C-a	switch-to-lisp
> C-c C-g C-g	clear-changes-lisp
> C-c C-g C-@	list-changes-lisp
> C-c C-g SPC	mark-change-lisp
> C-c C-g C-d	default-directory-lisp
> C-c C-g C-p	set-package-lisp
> C-c C-g C-n	next-caller-lisp
> C-c C-g C-e	edit-callers-lisp
> C-c C-g C-r	replace-lisp
> C-c C-g C-s	search-lisp
> C-c C-g C-u	find-unbalanced-lisp
> C-c C-g C-\	comment-region-lisp
> C-c C-g C-]	close-all-lisp
>
> Debug bindings (C-c C-b):
> C-c C-b C-g	slow-lisp
> C-c C-b C-f	fast-lisp
> C-c C-b C-x	ild-trap-on-exit
> C-c C-b C-r	ild-retry
> C-c C-b RET	ild-return
> C-c C-b C-l	ild-local
> C-c C-b C-d	ild-locals
> C-c C-b C-b	ild-backtrace
> C-c C-b C-w	ild-bottom
> C-c C-b C-v	ild-top
> C-c C-b C-p	ild-previous
> C-c C-b C-n	ild-next
> C-c C-b C-s	ild-step
> C-c C-b C-c	ild-continue
> C-c C-b C-a	ild-abort
> C-c C-b C-y	status-lisp
> C-c C-b C-z	reset-ilisp
> C-c C-b C-t	trace-defun-lisp
> C-c C-b C-k	macroexpand-lisp
> C-c C-b C-^	raw-keys-ilisp

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.

My first choice might have been to bind macroexpand-1-lisp to C-c
C-b C-k, but I can't really say which one I use more.

> Modified versions of above bindings:

[Later discussion reveals that M-<foo> -> <foo> change has been
made here and I agree with that.]

> C-c C-k ESC d	compile-defun-and-go-lisp
> C-c C-k ESC r	compile-region-and-go-lisp
> C-c C-j ESC l	eval-last-sexp-and-go-lisp
> C-c C-j ESC n	eval-next-sexp-and-go-lisp
> C-c C-j ESC d	eval-defun-and-go-lisp
> C-c C-j ESC r	eval-region-and-go-lisp
> C-c C-g ESC p	set-buffer-package-lisp
> C-c C-g ESC ]	close-and-send-lisp
> C-c C-b ESC a	abort-commands-lisp
> C-c C-b ESC k	macroexpand-1-lisp
>
>
> Global Bindings Starting With C-c:
> ==================================
> C-c C-g C-v	ilisp-scroll-output
> C-c C-g C-b	ilisp-bury-output
> C-c C-b C-u	trace-defun-lisp-break
> C-c C-g ESC a	select-lisp

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