(Re)generate: (find-anchors-intro) Source code: (find-eev "eev-intro.el" "find-anchors-intro") More intros: (find-eev-quick-intro) (find-here-links-intro) (find-refining-intro) This buffer is _temporary_ and _editable_. It is meant as both a tutorial and a sandbox. Notes: this is an advanced tutorial! And it is very incomplete at the moment! 1. Introduction =============== These sections of the main tutorial explain what anchors are, and explain two simple ways of creating index/section anchor pairs: (find-eev-quick-intro "8. Anchors") (find-eev-quick-intro "8.1. Introduction: `to'") (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.4. Creating e-script blocks") (find-eev-quick-intro "8.4. Creating e-script blocks" "`M-B'") and these other sections explain briefly how hyperlinks to anchors in other files work, (find-eev-quick-intro "8.5. Hyperlinks to anchors in other files") (find-eev-quick-intro "9.2. Extra arguments to `code-c-d'") (find-eev-quick-intro "9.2. Extra arguments to `code-c-d'" ":anchor)") (find-eev-quick-intro "9.2. Extra arguments to `code-c-d'" "makes (find-eev") but they stop right before explaining how to use them in a practical way, i.e., with few keystrokes. This intro is about this. 2. Shrinking ============ We saw in (find-eev-quick-intro "9.2. Extra arguments to `code-c-d'" "makes (find-eev") that these two hyperlinks are equivalent: (find-eevfile "eev-blinks.el" "«find-wottb»") (find-eev "eev-blinks.el" "find-wottb") The first one searches for a string in "eev-blinks.el" in the normal way; the second one treats the "find-wottb" as a tag, wraps it in `«»'s, and then searches for the anchor "«find-wottb»" in the file "eev-blinks.el". We will refer to the operation that converts the hyperlink (find-eevfile "eev-blinks.el") to (find-eev "eev-blinks.el") as _shrinking_ the hyperlink. Eev has a key sequence that does that, and for simplicity its behavor is just this: it looks at first element of the sexp at eol (the "head" of the sexp), and if it is a symbol that ends with "file" then rewrite the sexp replacing the head symbol by it minus its suffix "file". That key sequence is `M-h M--' (`ee-shrink-hyperlink-at-eol'), and its source code is here: (find-eev "eev-edit.el" "ee-shrink-hyperlink-at-eol") Try it on the two lines below: (find-eevfile "eev-edit.el" "ee-shrink-hyperlink-at-eol") (find-eev "eev-edit.el" "ee-shrink-hyperlink-at-eol") 3. The preceding tag ==================== The key sequence `M-h M-w' copies the current line to the kill ring, highlights it for a fraction of a second, and shows the message "Copied the current line to the kill ring - use C-y to paste" in the echo area. Here are links to its source code and to a section of a tutorial that mentions it: (find-eev "eev-edit.el" "ee-copy-this-line-to-kill-ring") (find-refining-intro "3. Three buffers" "M-h M-w") When we run `M-h M-w' with a numeric argument - for example, as `M-1 M-h M-w' - it highlights and copies to the kill ring the "preceding tag" instead of the current line; the "preceding tag" is the string between `«»'s in the anchor closest to the point if we search backwards. As an exercise, type `M-1 M-h M-w' at some point below, and then use `M-h M-y' (`ee-yank-pos-spec') to add it to the hyperlink with `find-anchors-intro' below the anchors. «first-anchor» «second-anchor» «third-anchor» (find-anchors-intro) [TO DO: write the other sections!]