|
On e-scripts
This is a totally non-technical introduction to eev and e-scripts.
See also my presentation at the
EmacsConf2019, whose title was:
"How to record executable notes with eev -
and how to play them back".
Here are the main parts of the Eev Manifesto
(from 1999!), taken from the section "3.
Sharing":
Everybody is fluent in only a small fraction of all Unix
commands. If you could "listen" to how the Unix gurus "speak" to
their machines you would learn which "words" are related to solving
a particular task, and learn how they fit in "sentences". By
checking the "dictionary entries" for them (i.e., manpages, info
pages, READMEs, source code, etc) you could learn the real meaning
of them. But then you'd be learning Unix by immersion, from real
use, instead of having to rely only on "textbooks", "dictionaries"
and sometimes "Rosetta stones", "graffitis on toilet walls" and "old
newspapers".
The fact is that you can make a record of how you "speak" Unix,
and more, you can become a lot more productive if you do so. Many
tasks consist on short fixed sequences of commands: connecting to
your ISP via modem, unpacking a source package and recompiling it,
printing a text file in two-column mode, and so on. The trick is
that with some functions defined in eev.el you can write these
sequences of commands in a plain text file, then mark a block of
this file with your editor (which must be Emacs for this to work),
then tell a shell to execute only the commands in that block; in
this way you can easily execute only portions of what would
otherwise have to be a monolythic script; this is great for when
you're not sure if everything works, or if you just want to do some
steps. Also, it would be easy to change bits of the "script" before
execution, as you'll be doing things from inside an editor.
(...)
I have placed essentially all my "scripts" written in this way (I
call them "e-scripts") in a public place. They contain almost
everything I know about Unix.
Here are the main parts of the section "5. Tools for writing e-scripts":
We saw how to follow links and how to execute eepitch
blocks, so an e-script block is "executable". But in what sense it
is a "log"?
1. In the old days log books were always made of paper, and there
was nothing automatic in taking notes with them. We would have to
decide what to write and how to write it, and we would have to
alternate between the "task" and "taking notes". After many years of
practice some people would learn how to take notes without
distracting themselves much from the task at hand, and they would
learn how to make their notes at the same time concise and readable
enough.
2. Nowadays, with computers, there are some ways to write logs
automatically - for example, most shells record the commands given
to them - but the output is of low quality.
3. Eev takes an intermediate stance between "notes by hand" and
"automatic notes". It is possible to do "task"+"notes" with just a
few more keystrokes than for doing just "task", but that requires
learning some tricks, and having some practice.
The next sections discuss those tricks.
|