From: ·······@attbi.com
Subject: Emacs and CL programming
Date: 
Message-ID: <wk667ietgh.fsf@attbi.com>
I started using emacs about a year ago and started learning CL a few
months back. I am using clisp and acl (trial edition) and have recently
upgraded my emacs to 21.1. I use ilisp with clisp and eli with acl and have
been curious as to what modifications other people are making to their .emacs
files to facilitate CL programming. I have searched through c.l.l and googled
to a number of emacs sites that post dotemacs examples but haven't come across
many CL-specific mods that people are doing.

What emacs mods have other people here found useful? I have the following
cl-specific functionality in my .emacs:

1. Load ilisp for clisp
2. Load eli for acl
3. Function key to bring up CLHS in browser for function at point
4. Function key to bring up CLtL in browser for function at point
5. Function key to bring up CLtL index 
6. Function key for lisp-eval-last-sexp
7. Function key to execute elisp describe-function for function at point
(although this brings up elisp description, sometimes that gives me extra
information)
8. Function key to execute elisp find-function-at-point (again, it's elisp but
for same reason as #7)
9. I turn on eldoc mode as I find it useful to have parameter information
displayed in the minibuffer for those functions that are common to both elisp
and CL
10. I turn on tinylisp mode (from Jari Aalto's tinytools) - I find it really
useful for elisp programming and I sometimes find it useful for CL programming 
too 

Note-I have a lot of function keys to bring up documentation sources since
I am just learning CL and often want to read function descriptions from CLtL,
CLHS & the elisp/CL code to better understand how a function works or what it
does.

If you want to have a look at my emacs file, it is at the following URL:
http://www.geocities.com/bill_clementson/emacs.html
It is a bit longish, so search for the "Programming - Elisp" comment. That
starts the elisp/clisp/acl sections.

I would appreciate hearing any suggestions and ideas for how I might improve my
emacs CL programming environment. Also, any comments/criticisms on my .emacs
would be appreciated as I am a (relative) newcomer to emacs and a (definite)
newcomer to CL.

--
Bill Clementson

From: Dr. Edmund Weitz
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <m3itbi7sex.fsf@bird.agharta.de>
·······@attbi.com writes:

> 9. I turn on eldoc mode as I find it useful to have parameter
> information displayed in the minibuffer for those functions that are
> common to both elisp and CL

But doesn't that override the corresponding feature provided by ILISP
(and probably my eli) which should be more valuable for CL
programming?

Edi.
From: ·······@attbi.com
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <wk1yi6erld.fsf@attbi.com>
···@agharta.de (Dr. Edmund Weitz) writes:

> ·······@attbi.com writes:
> 
> > 9. I turn on eldoc mode as I find it useful to have parameter
> > information displayed in the minibuffer for those functions that are
> > common to both elisp and CL
> 
> But doesn't that override the corresponding feature provided by ILISP
> (and probably my eli) which should be more valuable for CL
> programming?
> 
> Edi.

I wasn't aware of the ilisp equivalent feature, what is it called? I wonder
whether there are other ilisp/eli  features that I'm either not using correctly
or have overlooked in the manuals. I'm learning CL/ilisp/eli straight from
books and info files without the benefit of someone else's experience, so I'm
sure there are lots of things that I'm not doing correctly or optimally.

--
Bill Clementson
From: Dr. Edmund Weitz
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <m3adwu7ph7.fsf@bird.agharta.de>
·······@attbi.com writes:

> ···@agharta.de (Dr. Edmund Weitz) writes:
> 
> > ·······@attbi.com writes:
> > 
> > > 9. I turn on eldoc mode as I find it useful to have parameter
> > > information displayed in the minibuffer for those functions that
> > > are common to both elisp and CL
> > 
> > But doesn't that override the corresponding feature provided by
> > ILISP (and probably my eli) which should be more valuable for CL
> > programming?
> > 
> > Edi.
> 
> I wasn't aware of the ilisp equivalent feature, what is it called?

I don't know how it's called but it seems that my initial guess was
wrong. At least on my machine ILISP is able to override eldoc mode,
i.e. if you're in a buffer that's controlled by ILISP, the parameter
information in the minibuffer is provided by ILISP, not by elmode (if
an inferior Lisp is running, that is).

To see the difference, start CLISP from within Emacs and type '(+ ' in
the *scratch* buffer and at the CLISP listener prompt. In the
*scratch* buffer you should see

  +: (&rest NUMBERS-OR-MARKERS)

in the minibuffer which is provided by elmode, while in the CLISP
buffer you should see

  +: (&rest other-args)

in the minibuffer which is provided by ILISP (and obtained by querying
the inferior Lisp AFAIK).

Sorry for the confusion,
Edi.
From: ·······@attbi.com
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <wksnamd910.fsf@attbi.com>
···@agharta.de (Dr. Edmund Weitz) writes:

> ·······@attbi.com writes:
> 
> > ···@agharta.de (Dr. Edmund Weitz) writes:
> > 
> > > ·······@attbi.com writes:
> > > 
> > > > 9. I turn on eldoc mode as I find it useful to have parameter
> > > > information displayed in the minibuffer for those functions that
> > > > are common to both elisp and CL
> > > 
> > > But doesn't that override the corresponding feature provided by
> > > ILISP (and probably my eli) which should be more valuable for CL
> > > programming?
> > > 
> > > Edi.
> > 
> > I wasn't aware of the ilisp equivalent feature, what is it called?
> 
> I don't know how it's called but it seems that my initial guess was
> wrong. At least on my machine ILISP is able to override eldoc mode,
> i.e. if you're in a buffer that's controlled by ILISP, the parameter
> information in the minibuffer is provided by ILISP, not by elmode (if
> an inferior Lisp is running, that is).
> 
> To see the difference, start CLISP from within Emacs and type '(+ ' in
> the *scratch* buffer and at the CLISP listener prompt. In the
> *scratch* buffer you should see
> 
>   +: (&rest NUMBERS-OR-MARKERS)
> 
> in the minibuffer which is provided by elmode, while in the CLISP
> buffer you should see
> 
>   +: (&rest other-args)
> 
> in the minibuffer which is provided by ILISP (and obtained by querying
> the inferior Lisp AFAIK).

Hmmm, that doesn't seem to work automatically under my ilisp configuration. I
disabled eldoc mode in my .emacs & restarted emacs. However, when I type in the
characters "(+ " in the *clisp-hs* buffer, I don't get any parm information in
the minibuffer. Nor do I get any parm information if I do the same action in a
lisp source file that I edit under ilisp mode. It could be something that is
part of 'completer' (which I don't enable for ilisp due to some issues with 
emacs v21.1) or there may be some variable that I haven't set...

> 
> Sorry for the confusion,
> Edi.

No need to apologize - I appreciate the tip.

Thanks.

-- 
Bill Clementson
From: Thomas F. Burdick
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <xcvvgfi8zvh.fsf@apocalypse.OCF.Berkeley.EDU>
·······@attbi.com writes:

> >   +: (&rest other-args)
> > 
> > in the minibuffer which is provided by ILISP (and obtained by querying
> > the inferior Lisp AFAIK).
> 
> Hmmm, that doesn't seem to work automatically under my ilisp
> configuration. I disabled eldoc mode in my .emacs & restarted
> emacs. However, when I type in the characters "(+ " in the
> *clisp-hs* buffer, I don't get any parm information in the
> minibuffer. Nor do I get any parm information if I do the same
> action in a lisp source file that I edit under ilisp mode. It could
> be something that is part of 'completer' (which I don't enable for
> ilisp due to some issues with emacs v21.1) or there may be some
> variable that I haven't set...

FWIW, the funciton is ilisp-arglist-message-lisp-space

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                               
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               
From: ·······@attbi.com
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <wkk7vyd63v.fsf@attbi.com>
···@apocalypse.OCF.Berkeley.EDU (Thomas F. Burdick) writes:

> FWIW, the funciton is ilisp-arglist-message-lisp-space

Thanks!

-- 
Bill Clementson
From: Dr. Edmund Weitz
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <m34rn2ae6d.fsf@bird.agharta.de>
·······@attbi.com writes:

> Hmmm, that doesn't seem to work automatically under my ilisp
> configuration. I disabled eldoc mode in my .emacs & restarted
> emacs. However, when I type in the characters "(+ " in the
> *clisp-hs* buffer, I don't get any parm information in the
> minibuffer. Nor do I get any parm information if I do the same
> action in a lisp source file that I edit under ilisp mode. It could
> be something that is part of 'completer' (which I don't enable for
> ilisp due to some issues with emacs v21.1) or there may be some
> variable that I haven't set...

No, I don't think this is related to completer. I just removed
(REQUIRE 'COMPLETER) from my .ilisp file and it worked nevertheless. I
suppose you either haven't bound the corresponding function to your
Space key or ILISP-*ARGLIST-MESSAGE-LIST-SPACE-P* is set to NIL. See
these lines from the ILISP info file:

`<C-z> a   (arglist-lisp)'
     Return the arglist of the current function.  With a numeric
     prefix, the leading paren will be removed and the arglist will be
     inserted into the buffer.

`<SPC>   (ilisp-arglist-message-lisp-space)'
     Display the value of the argument list of a symbol followed by
     <SPC>. _To enable this feature you have to set
     `ilisp-*arglist-message-lisp-space-p*' to `t'._

BTW, I'm also using Emacs 21.1. Works fine with the CVS version of
ILISP and completer.

HTH,
Edi.
From: ·······@attbi.com
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <wkoflad667.fsf@attbi.com>
···@agharta.de (Dr. Edmund Weitz) writes:

> Space key or ILISP-*ARGLIST-MESSAGE-LIST-SPACE-P* is set to NIL. See
> these lines from the ILISP info file:
> 
> `<C-z> a   (arglist-lisp)'
>      Return the arglist of the current function.  With a numeric
>      prefix, the leading paren will be removed and the arglist will be
>      inserted into the buffer.
> 
> `<SPC>   (ilisp-arglist-message-lisp-space)'
>      Display the value of the argument list of a symbol followed by
>      <SPC>. _To enable this feature you have to set
>      `ilisp-*arglist-message-lisp-space-p*' to `t'._

That's it, thanks.

> BTW, I'm also using Emacs 21.1. Works fine with the CVS version of
> ILISP and completer.

Good to hear that - I'll get the CVS version.

Thanks again.

--
Bill Clementson
From: Brian P Templeton
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <87zo4nrhkt.fsf@tunes.org>
·······@attbi.com writes:

[...]
> Hmmm, that doesn't seem to work automatically under my ilisp configuration. I
> disabled eldoc mode in my .emacs & restarted emacs. However, when I type in the
> characters "(+ " in the *clisp-hs* buffer, I don't get any parm information in
> the minibuffer. Nor do I get any parm information if I do the same action in a
> lisp source file that I edit under ilisp mode. It could be something that is
> part of 'completer' (which I don't enable for ilisp due to some issues with 
> emacs v21.1) or there may be some variable that I haven't set...
> 

To get completion to not break with ILISP and Emacs 21, add this to
your ~/.emacs:

    (setq ilisp-*prefix-match* t)

>> 
>> Sorry for the confusion,
>> Edi.
> 
> No need to apologize - I appreciate the tip.
> 
> Thanks.
> 
> -- 
> Bill Clementson

hth,
-- 
BPT <···@tunes.org>	    		/"\ ASCII Ribbon Campaign
backronym for Linux:			\ / No HTML or RTF in mail
	Linux Is Not Unix			 X  No MS-Word in mail
Meme plague ;)   --------->		/ \ Respect Open Standards
From: ·······@attbi.com
Subject: Re: Emacs and CL programming
Date: 
Message-ID: <wkwuzqh7f6.fsf@attbi.com>
Brian P Templeton <···@tunes.org> writes:

> ·······@attbi.com writes:
> 
> [...]
> > Hmmm, that doesn't seem to work automatically under my ilisp configuration. I
> > disabled eldoc mode in my .emacs & restarted emacs. However, when I type in the
> > characters "(+ " in the *clisp-hs* buffer, I don't get any parm information in
> > the minibuffer. Nor do I get any parm information if I do the same action in a
> > lisp source file that I edit under ilisp mode. It could be something that is
> > part of 'completer' (which I don't enable for ilisp due to some issues with 
> > emacs v21.1) or there may be some variable that I haven't set...
> > 
> 
> To get completion to not break with ILISP and Emacs 21, add this to
> your ~/.emacs:
> 
>     (setq ilisp-*prefix-match* t)

Thanks!
-- 
Bill Clementson