(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!