unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eduardo Ochs <eduardoochs@gmail.com>
To: Jean-Christophe Helary <jean.christophe.helary@traduction-libre.org>
Cc: Emacs developers <emacs-devel@gnu.org>
Subject: Re: list of elisp primitives ?
Date: Thu, 26 Dec 2019 18:17:23 -0300	[thread overview]
Message-ID: <CADs++6jZ3Yb3kabSwOj4Xr7PRQtQ8LDSmaDQ4Re=YD4-Sxc8tw@mail.gmail.com> (raw)
In-Reply-To: <701C773A-96C5-47FD-B75F-92947976E57B@traduction-libre.org>

Hi Jean-Christophe,

On Thu, 26 Dec 2019 at 14:40, Jean-Christophe Helary
<jean.christophe.helary@traduction-libre.org> 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.)



  parent reply	other threads:[~2019-12-26 21:17 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-22  2:59 list of elisp primitives ? Jean-Christophe Helary
2019-12-22  3:21 ` Eduardo Ochs
2019-12-22  3:43   ` Jean-Christophe Helary
     [not found]     ` <CADs++6hB7ZKnEWOZ=XOGdA=W_CacCE2=354ARfNFtWvStaCF3g@mail.gmail.com>
2019-12-22  4:14       ` Jean-Christophe Helary
     [not found]         ` <CADs++6j+niJy3hvrTEJ-LrqcitFuffX=1Duca7pU30a8qfh_zg@mail.gmail.com>
2019-12-22  4:38           ` Jean-Christophe Helary
2019-12-22 15:01         ` Stephen Berman
2019-12-22 17:31         ` Drew Adams
2019-12-26 17:39           ` Jean-Christophe Helary
2019-12-26 18:00             ` arthur miller
2019-12-26 18:09             ` Drew Adams
2019-12-26 18:22               ` Jean-Christophe Helary
2019-12-26 18:33             ` Stefan Monnier
2019-12-26 21:17             ` Eduardo Ochs [this message]
2019-12-27  0:21               ` Jean-Christophe Helary
2019-12-22 14:56     ` Óscar Fuentes
2019-12-22 22:34       ` Jean-Christophe Helary
2019-12-22 19:21 ` Marcin Borkowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CADs++6jZ3Yb3kabSwOj4Xr7PRQtQ8LDSmaDQ4Re=YD4-Sxc8tw@mail.gmail.com' \
    --to=eduardoochs@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=jean.christophe.helary@traduction-libre.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).