[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hyperbole and eev
From: |
Robert Weiner |
Subject: |
Re: Hyperbole and eev |
Date: |
Mon, 28 Sep 2020 20:45:35 -0400 |
Hi Eduardo:
I enjoy reading your messages but if you could send a separate message with
just a list if questions and then separate messages with things you want to
explain and discuss, it would make it easier to respond
Thanks,
-- Bob
> On Sep 28, 2020, at 3:15 PM, Eduardo Ochs <eduardoochs@gmail.com> wrote:
>
> Hi Robert,
>
> I will try to answer all your e-mails in a single e-mail - in a new
> thread. Yor e-mails are here:
>
> https://lists.gnu.org/archive/html/hyperbole-users/2020-09/index.html#00008
>
> First: thanks for the hints, things are starting to make sense to me.
>
> We are clearly using different notions of simplicity - eev is like a
> Volkswagen Beetle, in the sense that if you open its lid everything is
> trivial to figure out and to fix, hack, and extend.
>
> It's nice that you said
>
>> I really, really recommend that you try to use Hyperbole without
>> initially mixing it with eev, as I think you will find that
>> Hyperbole already contains much of what you need to simplify eev and
>> tie it to a broader Emacs ecosystem.
>
> because that sort of allows me to ask you to try eev! =) =) =)
> I am not going to ask you to try eev without Hyperbole, though - I
> tried to
>
> 1. make eev as non-invasive as possible - see:
>
> http://angg.twu.net/eev-intros/find-eev-intro.html#1
>
> 2. make it trivial to navigate by people who have very short
> attention spans and who have just a few spare minutes to play
> with it. Here are the instructions:
>
> a. install eev with M-x list-packages,
>
> b. run M-x eev-beginner,
>
> c. learn how to use M-e and M-j to navigate the docs. See:
>
> http://angg.twu.net/eev-intros/find-emacs-keys-intro.html#1
>
> Let me copy that section here:
>
> 1. Basic keys (eev)
> ===================
> The most basic keys of eev are:
> M-e - to follow a hyperlink. Mnemonic: "(e)valuate"/"(e)xecute".
> See: (find-eev-quick-intro "2. Evaluating Lisp")
> (find-eev-quick-intro "3. Elisp hyperlinks")
> M-j - to jump to certain predefined places. In particular,
> `M-j' takes you to a buffer with basic help and a
> list of jump targets. See:
> (find-eev-quick-intro "7.2. The list of eejump targets")
> `M-2 M-j' takes you to this help page.
> `M-5 M-j' takes you to: (find-eev-quick-intro)
> M-k - to go back. Mnemonic: "(k)ill buffer".
> See: (find-eev-quick-intro "3. Elisp hyperlinks" "M-k")
>
> By the way, you asked me what this line of my e-mail does:
>
> (code-c-d "hyperbole" "~/.emacs.d/elpa/hyperbole-7.1.2/" "hyperbole")
>
> The answer is here:
>
> (find-eev-quick-intro "9.1. `code-c-d'")
>
> You can see the code that it runs by running this:
>
> (find-code-c-d "hyperbole" "~/.emacs.d/elpa/hyperbole-7.1.2/" "hyperbole")
>
>
>
>
>
>
>
> We are following different design principles. In my view, or, in eev's
> view, Hyperbole uses an awful amount of markup syntax, and it keeps
> the Elisp code too far from the user. Let me give you two examples,
> and ask you a question about a technical point in which I am stuck.
>
> I am watching your video
>
> "Bring Your Text to Life the Easy Way with GNU Hyperbole"
> http://www.youtube.com/watch?v=nC1eTgZE1oA
>
> and I am indexing it with the tricks described here:
>
> http://angg.twu.net/eev-intros/find-audiovideo-intro.html#4.3
>
> The video made me understand that Hyperbole's action key works on
> {Implicit Buttons}, <(Explicit Buttons)>, and <(Global Buttons)> -
> from 17:00 in the video onwards - and from 19:06 onwards you show that
> the action key also works on pathnames enclosed in double quotes, in a
> way that supports lots of abbreviations. That's REALLY nice - but let
> me point to you that eev's hyperlinks can to point to arbitrary
> positions in files, manpages, PDFs, etc, and I don't know if the "#"
> syntax in Hyperbole's hyperlinks can do that... see:
>
> http://angg.twu.net/eev-intros/find-refining-intro.html
> http://angg.twu.net/eev-intros/find-pdf-like-intro.html#4
>
> Ok, time for my technical question. Apparently this Hyperbole button
>
> {C-h h d a}
>
> should have essentially the same action as:
>
> (eek "C-h h d a")
>
> but my `eek' sexp just inserts an "a". It's trivial to inspect the
> innards of how the function eek works - we just have to search for its
> source code, and it is just this:
>
> (defun eek (str) (interactive "sKeys: ")
> "Execute STR as a keyboard macro. See `edmacro-mode' for the exact
> format.\n
> An example: (eek \"C-x 4 C-h\")"
> (execute-kbd-macro (read-kbd-macro str)))
>
> Your key sequence buttons work well on key sequences like {C-h h d a},
> but I couldn't find a function that on receiving the string like "C-h
> h d a" would execute it as a key sequence, like this would do,
>
> (execute-kbd-macro (read-kbd-macro "C-h h d a")))
>
> but without the bugs... I grepped for "key sequence" in the Hyperbole
> source directory and created a link to the result of that grep,
>
> (find-hyperbolegrep "grep --color -niH --null -e 'key sequence' *.el")
>
> to be able to go back to that easily. I guess that the function that I
> am looking for is in:
>
> (find-hyperbolefile "hib-kbd.el")
>
> but I couldn't find it... and typing C-h A didn't help me much. I have
> the feeling that C-h A would be better if it would say which function
> the action key would call - I mean, something more precise than saying
> "hui:hbut-act".
>
> Cheers,
> Eduardo Ochs
> http://angg.twu.net/emacsconf2019.html
>