Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.











         How to create hyperlinks to
         "here" with `find-here-links'

         (This is about Emacs and eev)

           Eduardo Ochs
           December 26, 2020























  1. The tutorials
  ================
  The header of

    (find-eev-quick-intro)

  points to...

    (find-emacs-keys-intro)
    (find-here-links-intro)
    (find-refining-intro)

  Let's start with:

    (find-emacs-keys-intro "beginner's way of creating" "hyperlinks to here")
    (find-emacs-keys-intro "other keys for creating hyperlinks to here")

    The beginner's way of creating "hyperlinks to here" is with:
      M-h M-3   - (find-here-links-intro "4. `find-here-links-3'")
      M-h M-1   - (find-here-links-intro "5. `find-here-links-1'")
      M-h M-w   - (find-here-links-intro "6. Copying the hyperlink" "M-h M-w")

    The other keys for creating hyperlinks to here and refining them are:
      M-h M-h   - `find-here-links': (find-eev-quick-intro "4.1. `find-here-links'")
      M-h M-2   - `ee-duplicate-this-line'. See: (find-eval-intro "M-h M-2")
      M-h M-y   - `ee-yank-pos-spec'. See: (find-eval-intro "M-h M-y")
                See also: (find-refining-intro "2. Refining hyperlinks")

    (eek "M-h M-k  M-h M-2  ;; ee-duplicate-this-line")
    (find-efunction           'ee-duplicate-this-line)

    (find-refining-intro "kill-new")
    (find-refining-intro "M-h M-2  M-h M-y")





  2. The beginner's way
  =====================

    2.1. The 3-window setting - and going back from it
    --------------------------------------------------
    Demo:

    (find-wset "12233ooo3o2ooo+")
    (eek "M-h M-3")
    (eek "M-h M-1")

    (find-here-links-intro "saves the current window configuration")
    (find-here-links-intro "`M-h M-1' undoes what `M-h M-3' did")

    (eek        "M-h M-k  M-h M-3  ;; find-here-links-3")
    (find-elongkey-links "M-h M-3  ;; find-here-links-3")
    (find-efunctiondescr             'find-here-links-3)
     A variant of `find-here-links' that creates a three-window setting.

    (eek "M-h M-k  M-h M-1  ;; find-here-links-1")
    (find-elongkey-links "M-h M-1  ;; find-here-links-1")
    (find-efunctiondescr             'find-here-links-1)
     Restore the window configuration before `find-here-links-3'.

     _______________           _____________________           ________________
    |               |         |          |          |         |                |
    |               |         |          |  elinks  |         |                |
    |               |         |          |  buffer  |         |                |
    |    target     | M-h M-3 |  target  |__________| M-h M-1 |     target     |
    |    buffer     | ------> |  buffer  |          | ------> |     buffer     |
    |               |         |          |  notes   |         |                |
    |               |         |          |  buffer  |         |                |
    |_______________|         |__________|__________|         |________________|




    2.2. Copying one link
    ---------------------

     _____________________
    |          |          |
    |          |  elinks  |
    |          |  buffer  |
    |  target  |____||____|
    |  buffer  |    \/    |
    |          |  notes   |
    |          |  buffer  |
    |__________|__________|

    (find-elongkey-links "C-w      ;; kill-region    (a.k.a. Cut)")
    (find-elongkey-links "M-w      ;; kill-ring-save (a.k.a. Copy)")
    (find-elongkey-links "C-y      ;; yank           (a.k.a. Paste)")
    (find-elongkey-links "M-h M-w  ;; ee-copy-this-line-to-kill-ring")

        _____________________________________________
       |                      |                      |
       |                      |                      |
       |                      |       elinks         |
       |                      |       buffer         |
       |                   :::::>                    |
       |        target        |                      |
       |        buffer        |    || C-w, M-w, or   |
       |                      |    || M-h M-w        |
       |                      |----||----------------|
       |                      |    || C-y            |
       |                      |    \/                |
       |                      |                      |
       |                      |       notes          |
       |                      |       buffer         |
       |                      |                      |
       |                      |                      |
       |______________________|______________________|



    2.3. Duplicating and refining
    -----------------------------

    (find-refining-intro "2. Refining hyperlinks")
    (find-refining-intro "2. Refining hyperlinks" "M-h M-2" "`ee-duplicate-this-line'")
    (find-refining-intro "2. Refining hyperlinks" "M-h M-y" "`ee-yank-pos-spec'")
    (find-refining-intro "2. Refining hyperlinks" "Try")

    Example:

    BAR
    (find-fline "/tmp/FOO")

        _____________________________________________
       |                      |                      |
       |                      |                      |
       |              M-w,    |       elinks         |
       |              M-h M-3 |       buffer         |
       |                  ::::::>                    |
       |        target        |       M-h M-2,       |
       |        buffer        |    || M-h M-y,       |
       |                      |    || M-w            |
       |                      |----||----------------|
       |                      |    || C-y            |
       |                      |    \/                |
       |                      |                      |
       |                      |       notes          |
       |                      |       buffer         |
       |                      |                      |
       |                      |                      |
       |______________________|______________________|




  3. Using a single window
  ========================

  (find-refining-intro "3. Three buffers")
  (find-refining-intro "3. Three buffers" "keys to switch buffers")

   ________           ________           ________           ________
  |        |         :        :         |        |         |        |
  | target | M-h M-h : elinks : M-1 M-j | notes  | M-K M-K | target |
  | buffer | ------> : buffer : ------> | buffer | ------> | buffer |
  |________|         :________:         |________|         |________|





  4. Advanced usage: anchors
  ==========================

    4.1. Creating anchors
    ---------------------

    (find-eev-quick-intro "8. Anchors")
    (find-eev-quick-intro "8.3. Creating index/section anchor pairs")
    (find-eev-quick-intro "8.3. Creating index/section anchor pairs" "`M-A'")
    (find-eev-quick-intro "8.3. Creating index/section anchor pairs" "`M-A' in the line below")
    (find-eev-quick-intro "8.4. Creating e-script blocks")
    (find-eev-quick-intro "8.4. Creating e-script blocks" "`M-B' on the line below")


    4.2. The option :anchor for `code-c-d'
    --------------------------------------

    (find-anchors-intro "1. Introduction")
    (find-anchors-intro "1. Introduction" "code-c-d")
    (find-anchors-intro "1. Introduction" "code-c-d" ":anchor")

         (code-c-d "eev" "~/eev-current/" :anchor)
    (find-code-c-d "eev" "~/eev-current/" :anchor)

    (find-eevfile "eev-tlinks.el" "«find-youtubedl-links»")
    (find-eev     "eev-tlinks.el"  "find-youtubedl-links")


    4.3. Shrinking hyperlinks
    -------------------------

    (find-anchors-intro "2. Shrinking")
    (find-anchors-intro "2. Shrinking" "`M-h M--'")
    (find-anchors-intro "2. Shrinking" "Try it")


    4.4. The preceding tag
    ----------------------

    (find-anchors-intro "3. The preceding tag")
    (find-anchors-intro "3. The preceding tag" "`M-h M-w' with a numeric argument")
    (find-anchors-intro "3. The preceding tag" "`M-1 M-h M-w'")

    A demo (with the 3-window setting for clarity):

        _____________________________________________
       |                      |                      |
       |                      |                      |
       |         M-1 M-h M-w, |       elinks         |
       |             M-h M-3  |       buffer         |
       |                  ::::::>                    |
       |        target        |       M-h M-2,       |
       |        buffer        |    || M-h M--,       |
       |                      |    || M-h M-y,       |
       |                      |    || M-w            |
       |                      |----||----------------|
       |                      |    || C-y            |
       |                      |    \/                |
       |                      |                      |
       |                      |       notes          |
       |                      |       buffer         |
       |                      |                      |
       |                      |                      |
       |______________________|______________________|