emacs-devel
[Top][All Lists]
Advanced

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

Re: list of elisp primitives ?


From: Eduardo Ochs
Subject: Re: list of elisp primitives ?
Date: Thu, 26 Dec 2019 18:17:23 -0300

Hi Jean-Christophe,

On Thu, 26 Dec 2019 at 14:40, Jean-Christophe Helary
<address@hidden> wrote:
>
> Mind you, I too am trying to find my way around and it's not easy.
> My pet peeve is "discoverability" and for now despite the info/doc
> integration, I'm still very much struggling.

Emacs _tries_ to be an "high-discoverability environment"... if you
are trying to discover things but you feel that you are still
struggling then I think that at the very least we need to show you our
favourite tools and listen to your feedback...

I am the author of this package:

  http://elpa.gnu.org/packages/eev.html
  http://angg.twu.net/#eev

and one of my favourite parts of it is its "eev-ish" variant of
Emacs's `C-h f'. If you type `C-h f' with the point on the name of a
function - for example, on:

  kill-buffer

you get a temporary buffer called "*Help*" that lots of information
and some hyperlinks - but if you copy these hyperlinks to other
buffers they won't work.

If you type `M-h M-f' on the "format" above with eev-mode on you will
get a tempory read-write buffer with these sexps:


  # (find-efunction-links 'kill-buffer)
  # (eek "M-h M-f  kill-buffer")
  # (find-eev-quick-intro "4.2. `find-ekey-links' and friends")

  # (find-efunctiondescr 'kill-buffer)
  # (find-efunction 'kill-buffer)
  # (find-efunctionpp 'kill-buffer)
  # (find-efunctiond 'kill-buffer)

  # (Info-goto-emacs-command-node 'kill-buffer)
  # (find-enode "Command Index" "* kill-buffer:")
  # (find-elnode "Index" "* kill-buffer:")

  # (where-is 'kill-buffer)
  # (symbol-file 'kill-buffer 'defun)
  # (find-fline (symbol-file 'kill-buffer 'defun))
  # (find-epp (assoc (symbol-file 'kill-buffer 'defun) load-history))
  # (find-estring (mapconcat 'identity (mapcar 'car load-history) "\n"))
  # (find-estring (documentation 'kill-buffer))
  # (find-estring (documentation 'kill-buffer t))
  # (describe-function 'kill-buffer)


This may look daunting at first but all these sexps are safe to play
with and if you copy them to your notes they will still work as elisp
hyperlinks - they are plain text without text properties, they don't
use things like these:

  (info "(elisp)Buttons")

The idea behind this is: we _usually_ don't need to learn elisp
functions in depth, and neither memorize things - if we learn how to
navigate the code and docs and how to copy elisp hyperlinks to our
notes then we can learn a lot about Emacs _superficially_ as we browse
it by curiosity... and then if and when we want to learn something in
more depth - to create our own extensions, say - we will already have
some familiarity with the territory, and lots of links to things that
we found interesting at the other times we've been there.

I would love to see other people's suggestions. In the last months I
learned several help keys that I don't know that existed, and - hint,
hint! - I really hope that at some point someone will give pointers on
how to learn edebug, or things similar to it... edebug and friends
look like great tools for understanding convoluted code in elisp.

  Cheers =),
  Eduardo Ochs, "who lives in a cave with its walls covered by sexps".
    http://angg.twu.net/#eev
    http://angg.twu.net/emacsconf2019.html


P.S.: ah, before I forget:
  http://angg.twu.net/eev-intros/find-here-links-intro.html
(It mentions several recent features.)



reply via email to

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