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 | | | | | | | |______________________|______________________|