[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 21:03:37 -0400 |
I will definitely look into eev as I have time. I like the idea of quickly
being able to interleave
execution of a program and shell commands on the same screen.
-- Bob
> On Sep 28, 2020, at 8:45 PM, Robert Weiner <rswgnu@gmail.com> wrote:
>
> 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
>>