(Re)generate: (find-eev-intro)
Source code:  (find-eev "eev-intro.el" "find-eev-intro")
Main intros:  (find-eev-quick-intro)
              (find-emacs-keys-intro)
              (find-eepitch-intro)
              (find-here-links-intro)
              (find-refining-intro)
Index to the source files: (find-eev "eev-load.el")
This buffer is _temporary_ and _editable_.
It is meant as both a tutorial and a sandbox.
The quickest way to open or recreate this is with `M-5 M-0 M-j'.


Here is a list of all the available sandbox-y tutorials that
explain parts and concepts of eev, listed in (a kind of)
recommended reading order. These are the basic ones:

   0. (find-eev-quick-intro)
   1. (find-emacs-keys-intro)
   2. (find-eev-intro)
   3. (find-here-links-intro)
   4. (find-refining-intro)
   5. (find-pdf-like-intro)
   6. (find-eepitch-intro)
   7. (find-audiovideo-intro)
   8. (find-videos-intro)
   9. (find-psne-intro)
  10. (find-rcirc-intro)
  11. (find-elisp-intro)
  12. (find-lexical-intro)
  13. (find-eev-install-intro)

This is a very basic tutorial intended mainly for M$ Windows
users:

  14. (find-windows-beginner-intro)

These ones explain ideas, conventions, and usage patterns:

  15. (find-escripts-intro)
  16. (find-links-conv-intro)

These are older and more technical versions of sections of the
eev-quick-intro:

  17. (find-eval-intro)
  18. (find-links-intro)
  19. (find-brxxx-intro)
  20. (find-wrap-intro)
  21. (find-eejump-intro)
  22. (find-anchors-intro)
  23. (find-code-c-d-intro)

These are etcs:

  24. (find-multiwindow-intro)
  25. (find-templates-intro)
  26. (find-org-intro)
  27. (find-git-intro)

These ones explain advanced features that require extra setup:

  28. (find-prepared-intro)
  29. (find-bounded-intro)
  30. (find-channels-intro)

This one is used in a video:

  31. (find-three-main-keys-intro)

These ones are obsolete:

  32. (find-emacs-intro)
  33. (find-defun-intro)

Item 25 is an index of old video tutorials, with scripts for
downloading local copies of them and links to important positions
in the videos.





1. `eev-mode'

To toggle eev-mode on and off, use `M-x eev-mode'. The text below is a copy of: (find-eev-install-intro "1. Installing eev by hand") Note that eev-mode.el has this commentary: ;; Turning on eev-mode simply activates the eev-mode-map keymap, and ;; adds an "eev" to the mode line to remind you this. Turning off ;; eev-mode deactivates the keymap and the reminder. If you prefer to start with eev-mode off, omit the line `(eev-mode 1)' above or change it to `(eev-mode 0)'. To toggle eev-mode on and off, use `M-x eev'. The keybindings in eev-mode are listed here: (find-eev "eev-mode.el" "eev-mode-map-set") Years ago eev was a very invasive package that changed several global settings; now it's the opposite. If you load eev the only things that happen are: 1) Several functions and variables become defined. They ALL have the prefixes "find-", "ee", "code-" or "br", except for one: "to". 2) The standard-display-table is changed to make three characters be displayed as colored glyphs: "*" (char 15), "«" (char 171), and "»" (char 187). 3) The environment variables "S" and "EEVDIR" are set. 4) An innocuous wrapper is installed around an internal function used by `man' (with `advice-add'). See: (find-eev "eev-blinks.el" "find-man") TODO: update the text above! I rewrote most of `(find-eev-install-intro)' in 2019sep29... See: (find-eev-install-intro "1. Beginners and experts") (find-eev-install-intro "2. The expert setup" "Here's what") (find-eev-install-intro "4. `eev-mode'")

3. The keybindings

`eev-mode' defines its own meanings for lots of meta-shift-letter key combinations - which are not normally used by Emacs - and, besides that, only for: `M-e' (find-eval-intro "`M-e'") `M-k' (find-eval-intro "`M-k'") `M-j' (find-eejump-intro "\neejump\n") `M-h' (find-links-intro "Elisp hyperlinks buffers") `<f8>' (find-eepitch-intro "The main key: <F8>") For the full lists of keybindings, see: (find-eev "eev-mode.el" "eev-mode") (find-efunctiondescr 'eev-mode) (find-eminormodekeymapdescr 'eev-mode) (find-ekeymapdescr eev-mode-map) (find-efunctiondescr 'eev-avadj-mode) (find-eminormodekeymapdescr 'eev-avadj-mode) (find-ekeymapdescr eev-avadj-mode-map)

4. The prefix `find-'

Some people feel that the functions defined by eev should not use the prefix `find-', that they should use `eefind-' instead... The code below can be used to list all the `find-*' functions defined by eev - including the `find-*' functions defined by calls to `code-c-d', `code-pdf-page', and friends: (require 'dash) ;; See: https://github.com/magnars/dash.el#functions ;; Tests: ;; (find-epp (assoc (symbol-file 'find-pdf-page 'defun) load-history)) ;; (setq a-lh-entry (assoc (symbol-file 'find-pdf-page 'defun) load-history)) ;; (find-epp a-lh-entry) ;; (find-epp (ee-lh-entry-finds a-lh-entry)) ;; (defun ee-lh-entry-finds (lh-entry) "Filter a load-history entry to keep only the `(defun . find-*)'s" (let* ((a (--filter (consp it) lh-entry)) (b (--filter (eq (car it) 'defun) a)) (c (--filter (string-match "^find-" (symbol-name (cdr it))) b))) (cons (car lh-entry) c))) (defun ee-lh-eev-finds () "Filter the load-history - returns a stripped version with only the eev files and the `(defun . find-*)'s in them." (let* ((lh-eevs (--filter (string-match "eev" (car it)) load-history))) (-map 'ee-lh-entry-finds lh-eevs))) (defun ee-lh-eev-find-functions () "Return a list of all `find-*' functions defined by eev." (let* ((a (ee-lh-eev-finds)) (b (-map 'cdr a)) (c (apply 'append b))) (-map 'cdr c))) ;; Tests: ;; (find-epp (ee-lh-eev-finds)) ;; (find-eppp (ee-lh-eev-find-functions)) It should be possible to use that list of functions to produce an experimental variant of eev in which all these `find-*' functions become `eefind-*' functions, and in which there a function that creates `find-*' aliases for all these `eefind-*' functions. I will try to implement that a prototype for that in the first months of 2021, but I am afraid that I won't use it much myself - I think that this is ugly. If you you like to discuss, test, or implement parts of this, please get in touch!