Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
# This file:
#   https://github.com/edrx/eev/
#       http://anggtwu.net/eev-current/README.org.html
#       http://anggtwu.net/eev-current/README.org
#              (find-angg "eev-current/README.org")
#              (find-angg "eev-current/")
# Author: Eduardo Ochs <eduardoochs@gmail.com>
# 
# Some eev-isms:
# (defun c  () (interactive) (eek "C-c C-e h h"))
# (defun o  () (interactive) (find-angg "eev-current/README.org"))
# (defun v  () (interactive) (brg     "~/eev-current/README.html"))
# (defun cv () (interactive) (c) (v))
# (find-eev "README.org")
# 
# (find-orgnode "Table of Contents")
#+OPTIONS: toc:nil num:nil

* Introduction

I used to call eev a "tool for automating almost everything" and "my
project to save the world with Free Software". In more concrete terms,
eev is a library for Emacs that lets us create [[http://anggtwu.net/eev-intros/find-here-links-intro.html#1][executable logs]] of
what we do in a format that is reasonably easy to read and to modify,
and that lets us "play back" those logs step by step in any order.

The best introductions to eev are:

- "[[http://anggtwu.net/emacsconf2019.html][How to record executable notes with eev - and how to play them
  back]]": my talk at the EmacsConf 2019. Executable notes are mostly
  made of [[http://anggtwu.net/eev-intros/find-eev-quick-intro.html#3][sexp hyperlinks]] and [[http://anggtwu.net/eev-intros/find-eev-quick-intro.html#6][eepitch blocks]]. This talk has a quick
  explanation of sexp hyperlinks at [[http://anggtwu.net/LATEX/2019emacsconf.pdf#page=5][slides 5 and 6]], a mention in [[http://anggtwu.net/LATEX/2019emacsconf.pdf#page=8][slide
  8]] of my 20+ years of executable notes in [[http://anggtwu.net/e/]], and
  a very nice demo of playing back non-trivial executable notes in the
  video starting at [[http://www.youtube.com/watch?v=86yiRG8YJD0#t=13m10s][13:10]]; the demo of eepitch starts at [[http://www.youtube.com/watch?v=86yiRG8YJD0#t=15m11s][15:11]],

- "[[http://anggtwu.net/emacsconf2020.html][On why most of the best features in eev look like 5-minute hacks]]":
  my talk at the EmacsConf 2020. It is mostly about design decisions;
  for example, starting at [[http://www.youtube.com/watch?v=hOAqBc42Gg8#t=30m40s][30:40]] it explains why eev implements a
  variant of [[http://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html][M-x describe-key]] that it much more hacker-friendly than
  the standard one. At [[http://www.youtube.com/watch?v=hOAqBc42Gg8#t=21m02s][21:02]] it shows how I use M-j to teach Emacs and
  eev to total beginners, and at [[https://www.youtube.com/watch?v=hOAqBc42Gg8#t=18m47s][18:47]] it explains the design
  decisions behind M-j.

- "[[http://www.youtube.com/watch?v=kxBjiUo88_U][How to install eev with M-x list-packages and how to navigate its
  tutorials]]". This is a video tutorial accessible to total beginners -
  with an approach that is the exact opposite of "[[http://anggtwu.net/LATEX/2019emacsconf.pdf#page=10][users should not be
  forced to see Lisp]]".

- its [[http://anggtwu.net/eev-intros/find-eev-intro.html][sandboxed tutorials]],

- its homepage: [[http://anggtwu.net/#eev]] .

The "[Video links:]" blocks in the sandboxed tutorials are explained
[[http://anggtwu.net/eev-intros/find-video-links-intro.html#2][here]]; that link also has a list of the videos. See also [[https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00527.html][this
announcement]] on emacs-devel.

# (find-eev-quick-intro "3. Elisp hyperlinks")
# (find-eev-quick-intro "6. Controlling shell-like programs")
# (find-eev2019video "13:10" "Demo: patching xpdf")
# (find-eev2019video "15:11" "Demo: the eepitch block (in red star lines)")
# (find-eev2020video "18:47" "M-j - design decisions")
# (find-eev2020video "21:02" "M-j itself")
# (find-eev2020video "30:40" "their targets are not visible")
# (ecop 8 "prehistory-7" "several megabytes")
# (eco    "prehistory-7" "several megabytes")

# http://anggtwu.net/eev-intros/find-videos-intro.html#2
# (find-videos-intro "2. Short links to eev video tutorials")

# (ecop 10 "prehistory-9" "users should not be forced to see Lisp")
# (eco     "prehistory-9" "users should not be forced to see Lisp")

* Trying it

The recommended way to try eev it to install it with M-x list-packages
and then run M-x eev-beginner; this will load all the modules of eev,
turn eev-mode on, and open the [[http://anggtwu.net/eev-intros/find-eev-quick-intro.html][main tutorial]]. I tried to make eev as
friendly as possible both to:

- beginners, who at first know only the most obvious keybindings, like
  the arrow keys, and no Lisp at all, and:

- experts, who want a very [[http://anggtwu.net/eev-intros/find-eev-intro.html#1][non-invasive]] package, with a mode that they
  can turn on and off easily (hint: M-x eev-mode), and that they can
  learn by playing with it just 5 minutes per week. The "expert setup"
  is explained [[http://anggtwu.net/eev-intros/find-eev-install-intro.html#1][here]]. The source code for M-x eev-beginner is [[http://anggtwu.net/eev-current/eev-beginner.el.html][here]].

# (find-eev-install-intro "1. Beginners and experts")
# http://anggtwu.net/eev-intros/find-eev-install-intro.html#1

# (find-eev-quick-intro)
# http://anggtwu.net/eev-intros/find-eev-quick-intro.html

# (find-eev "eev-beginner.el")
# http://anggtwu.net/eev-current/eev-beginner.el.html

# (find-eev-quick-intro "1. Installing eev")
# http://anggtwu.net/eev-intros/find-eev-quick-intro.html#1

# (find-eev-intro "1. `eev-mode'")
# http://anggtwu.net/eev-intros/find-eev-intro.html#1

# https://orgmode.org/ prose

# (ecop 5 "prehistory-4")
# (eco    "prehistory-4")

# (find-here-links-intro "1. Alternating between \"task\" and \"notes\"")
# http://anggtwu.net/eev-intros/find-here-links-intro.html#1

# http://anggtwu.net/LATEX/2019emacsconf.pdf
# http://anggtwu.net/LATEX/2019emacsconf.pdf#page=8
# http://anggtwu.net/LATEX/2019emacsconf.pdf#page=13

# Local Variables:
# modes: (org-mode fundamental-mode)
# End: