[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Best advice for new user

   I'm about to try to introduce my dad to emacspeak ...

   The emacs learning curve is steep.  Any suggestions ...?

First, if you have not installed Emacspeak recently, install or
reinstall Emacspeak on some machine that you can use with your father.
This way, you will have a set up that you know is working.

It is not clear from your message whether you will need to install
Emacspeak on a new machine for your father.  If you do install a new
instance of Emacspeak for him, please do so after showing off
Emacspeak on an already working installation, and after practicing
installation or reinstallation on your own time, before he arrives.

Sad to say, I have had troubles with Emacspeak installation, although
recently everything has gone well.  I am sighted, and do not depend on
Emacspeak, so perhaps I continually renew my ignorance.

Do you expect your father to use a hardware card for text-to-speech
generation?  Or will he use one of the software text-to-speech
packages such as eflite or espeakf?  I use those two software
packages, neither of which are mature.  I am told that hardware cards
are better.

At the moment, the eflite package I use reads Info files better than
espeakf.  Unlike my current version of espeakf, eflite does not pause
momentarily at the ends of lines in Info.  However, espeakf provides
different voices, which my current version of eflite lacks.

On the whole, I now prefer espeakf overall.  But I cannot stand the
way it pauses at the ends of lines in Info, so I use eflite when I
want to listen to Info files.

Interestingly, in Text Voice mode, espeakf reads Jane Austen's Pride
and Prejudice without pausing at the ends of lines.

I keep two different Emacspeak commands, one for starting Emacspeak
with eflite and the other for starting Emacspeak with espeakf.  Right
now, I am running both, each as its own instance of Emacspeak.



(I am also running two other non-Emacspeak instances of Emacs: an
Emacs version 21 owned by user `bob', and an Emacs version 20.7 owned
by user `root'.  That way, I separate dangerous system administration
task from ordinary work.  Moreover, since I tend to run the most
recent CVS development snapshot of Emacs 21, I like to keep a
known-to-work Emacs version 20.7 handy.)

By the way, I downloaded a copy of "Pride and Prejudice" from the
Gutenberg Project and converted its end-of-line characters to ones
that work well in Emacs (if I remember rightly, they were control-m


    Gutenberg Project 580k index

Your father may want to listen to this or other of the Gutenberg
books and documents.

As for introducing Emacspeak:

In Info, with your father, listen together to the beginnings of the
Emacspeak manual.  You might want to start with the Introduction node.
It is well written.  You can use the opportunity to introduce various
Emacspeak commands and to discuss the philosophy or world-view behind

Sighted people tend to work with the three contemporary user
interfaces: command line, graphical, and Emacs.  Each is different.

A key to Emacspeak is to understand that it provides a fourth type of
user interface.

Emacspeak is different from the shell command line interface that uses
commands such as `ls'.  It is different from a graphic user interface
such as GNOME/sawfish that uses a package such as `Mozilla'.
Moreover, although it is based on the virtual lisp machine interface
that is GNU Emacs, it is different from it, too.

Put another way, Emacs and Emacspeak are both integrated user
interfaces, like a shell, plus `vi', plus `ls', plus `gdb', plus
`gcc', plus Mozilla, and so on.  While related to each other, they
are also different.

Emacspeak is a complete audio desktop; it is not a visual desktop.
T. V. Raman describes it in his Emacspeak manual.

Your father will want to learn a great many keystroke commands, but
if he is like me, he will continually forget them, too.

So you need to teach him how to use Info, which is where he can listen
to the Emacspeak manual.  And you need to teach him how to use help.
This way, he can always learn more, or relearn what he has forgot.

The first commands I learned were:

    C-h C-e
        Give a brief overview of emacspeak.

    C-e {
         Speak paragraph.  With prefix arg, speaks rest of current
         paragraph.  Negative prefix arg will read from start of current
         paragraph to point.

    C-e [
         Speak a page.  With prefix ARG, speaks rest of current page.

    C-h s
        Stop speech.

    C-h i
        Start Info.

           and in Info, press "h" for an Info tutorail

    C-h t
        Start the Emacs Tutorial

        The `universal-argument', used as a prefix to interactive

He will also need to learn the regular movement and search keys.

Incremental search, bound to `C-s', is the most important way of
moving around documents.  The character and word-movement keys, and
the character and word-deletion keys, are reasonably easy to learn,
since they use English language mnemonics: C-f to move forward a
character, M-f to move forward a word, p for previous, n for next,
b for backwards, d for delete.

Hmmm.... you will want to explain the use of Meta.  You might tell him
that on many modern keyboards, a Meta key is what is now, generally
erroneously, labeled ALT.  (Genuine ALT keys can and do exist; but the
default keybinding for many machines automatically makes the key
labeled ALT be a Meta key.  Naturally, you should set up the machine
so that a genuine ALT key takes on a Meta keybinding, for example with
the `install-keymap emacs2' command.)

No one in their right mind, unless forced by a really old keyboard,
presses the escape key to simulate a Meta keypress.

While I am speaking of keybindings, and to be complete, please be sure
to make sure the control key is the key to the left of the `A' key.
This is something you should set up; you don't need to explain any of

You may have to change the keybinding.  On some keyboards, the key to
the left of the `A' key is labeled `Caps_Lock'.  It is as if the
keyboard manufacturers think that computers are typewriters from 1885.
Worse, they put the key labeled `Control' in an awkward spot, and then
provide default keybindings that match the labels.  You have to change
the keybindings.

Generally, the proper keymap is in


You can install the keymap permanently on your system for a console
with the shell command:

    install-keymap emacs2

(This may be a Debian specific command; it copies the emacs2.kmap.gz
file to the /etc/console/boottime.kmap.gz file, which is loaded into
the kernel at boot-time.  The older and widely used command is
`loadkeys'; when you run it, you have to specify the full path to the

If you are using a graphical user interface, you may need to specify
the keymap that X uses.  You can put the following commands in your
.xsession or .xinitrc file:

    xmodmap -e "clear Lock"
    xmodmap -e "add Control = Caps_Lock"

Some systems reverse the meaning of the Help key, Control-h, and the
Delete key.  The node, "Keyboard Translations" in the Emacs manual
describes what to do.

    (info "(emacs)Keyboard Translations")

Returning to what you might talk about early on with your father:

He may want to set the voice synthesizers speech rate.  I use both the
`dtk-set-predefined-speech-rate' commands:

    C-e d 1
    C-e d 2
    C-e d 3

and the `dtk-set-rate' commands, such as

    C-e d r 230

Probably it is a good idea to pick one of these commands.

As he gains more experience, your father will be able to understand
text spoken faster and faster, and will want to increase its speed.

Note that in both set-rate commands, an interactive prefix means to
set the speech rate globally.  Otherwise, it is set only for the
current buffer.

Your father may want to set rates globally, so it is worth telling
him about typing `C-u' first.

For a description of the basic commands, see the node `Reading' in the
Info file emacspeak.info

You can go directly to that node by evaluating the following Emacs
Lisp expression, which you can tell your father to do by positioning
point after the final parenthesis and typing `C-x C-e':

    (info "(emacspeak)Reading")

Perhaps evaluation is too much too soon, since it means remembering a
new command as well as figuring out where `point' is.  On the other
hand, I think it is worth illustrating, since the action opens up
future possibilities.  (Please remember to note the jargon word
`point'; it needs to be explained.)

Incidentally, you can go directly to the Introduction node by

    (info "(emacspeak)Introduction")

My hope is that you will inspire your father to experiment with many
commands and learn a few of them; you will inspire him to learn how to
use the help features, to listen to the Emacspeak Info manual, and
then to listen to the Emacs manual.

After that, he can start using Emacs W3 or Emacs W3m mode to browse
the Web, Emacs RMAIL mode to listen to Email, and Emacs mail mode to
send it.  You may need to make sure his machine is properly configured
for all this.

While listening to the Emacspeak Info manual, it is worth explaining
some of the problems people have with the Emacs manual, which he
should read next....

First, note that the Emacs manual is tightly written.  When I first
read it, I found I sometimes had to spend several minutes puzzling out
a concise meaning.  The good news is that it is accurate and well
written.  And after you understand it, the sentences make perfect

When I first started, I read the manual in segments over 2 years.
(This was in the 1980s.)  I did not understand all that I could do at
first.  Indeed, for the longest time, I did not switch from using `ls
-al' in a command line to using Dired mode.

You mentioned in your email message that

    The emacs learning curve is steep.

In my experience, that is not true.  It took me about five minutes to
start to use Emacs productively.  But I could not and did not do much
at first, except write.

However, the learning curve will be steep if you try all at once to
use many of the features that Emacs provides.  I have described
GNU Emacs as

    like having a dragon's cave of treasures.

You should not try to be too greedy and over-stuff yourself all at

(That quotation is from the Info node "On Reading this Text" in the
Info manual that introduces programming in Emacs Lisp:

    (info "(eintr)On Reading this Text")

I wrote that text "as an elementary introduction for people who are
not programmers", but presupposed experience with Emacs.  So I doubt
you or your father will want to look at it early on.  But I hope that
he will keep it in mind for the future.)

Returning the Emacs manual.   RMS (Richard Stallman) wrote it.  

Unfortunately, RMS writes as if editing is the Emacspeak equivalent to
using `ls' and `rm' in a command line shell.

Indeed, if you think about it, it is true that the Emacspeak actions
in Dired mode are a kind of editing.  But they are not the same kind
of editing as people do in an editor like `vi' when they press the
`h', `j', `k', and `l' keys to move around.  People are fooled by the

The words `mode' and `library' are not confusing, but may not be
understood immediately.  The two provide the features that programs
have in other interfaces.  Thus `Dired mode' provides the same
features in Emacs that the combination of `ls', `mv', `chown',
`chgrp', `gzip', `more', `vi', and `rm' provide in a shell.  A
`library' provides a `mode'.

Because of the adaption of Xerox Parc style windowing systems over the
past generation, many people are confused by Emacs' use of the words
`window' and `frame'.  Emacs provides for multiple windows within a
frame, as it always has.

You will probably not use a graphic user interface at all; but enough
people do that you will hear what they say.

Nowadays, sighted people often think of a `window' on a computer
screen as being a contiguous, usually rectangular space, what in Emacs
is called a `frame'.  That is because Emacs was designed initially to
fill a complete display as a tiling window manager.  Parts of the
display were called `windows'.

Companies like Apple and Sun, and the X Consortium, copied Emacs
jargon for their own `windows', to mean a part of a screen.  (Or else
the notion of a `window' was generic and commonplace.)

Thus, the term `window' started out and continues to mean a `part of a

But when Apple, Sun, and the X Consortium, and their followers adopted
the term `window' to mean a `part of a display', they lacked a term to
handle a part of a `window'.  (The word `pane' was suggested, but
never popular, because it sounds similar to the word `pain', spelled 
p a i n, and because some people were accustomed to material windows 
that were not made up of multiple `panes of glass'.)

However, in those days, mostly the 1980s, `windows' seldom contained
parts, other than a menu or tool bar or panel that applied to a whole
`window'.  Thus, one spreadsheet would appear in one window; one file
would appear in another.

Indeed, many of the non-Emacs programs I use today in a graphic user
interface still tend to put one set of contents, with its associated
panels and tool bars, into one `window': for example, XMMS, Mozilla,
or gnome-apt.

With Emacs, on the other hand, you could always put a directory
listing, two files, and an email message into four different parts of
an Apple or X style `window' (although most people keep to one or two
parts most of the time).  These different parts had always been
themselves called `windows', and so they remained.  Hence, the
invention of the term `frame' to refer to a segment of a display as
produced by an X or Sun user interface program.

Nowadays, you can start different frames in an instance of Emacspeak
that is not running in a graphical user interface.  One frame overlies
another.  The mode line will tell you which frame you are in.  (Type
`C-e m' to listen to the mode line.  That key chord calls the
`emacspeak-speak-mode-line' command.)

Emacs jargon can be brutal.  Some people are upset by the use of the
word `kill' to mean `cut' as in `cut and paste'.  (The word `cut' also
upsets some people, but generally less than the word `kill'.)  In
Emacs, an entity `killed' can be resurrected, which I think of as a
Christian form of meaning.

Some years ago, at the transition from Emacs version 18 to version 19,
I offered to convert every use in Emacs of the word `kill' to `clip'.
There were more than 400 such uses.  You could `clip' a segment of
text, and if it were never put back, it would be deleted.
Alternatively, you could yank the segment from `clip-ring'.  I picked
`clip' as the replacement word since it has four letters and fits the
older formatting and language without requiring much rewriting.

Moreover, had I changed the term to `cut', people would have expected
me to replace the word `yank' with `paste', to fit the phrase `cut and
paste'.  But I do not like the word `paste'; I no longer literally
paste clips onto a sheet of paper as I did when I was young.  It makes
more sense to me to `yank' a segment back from the `clip-ring'.

However, RMS never wanted me to make the replacement.  I think part of
the reason is that at that time, RMS still enjoyed what I think of as
a dead joke: the manual for version 18 Emacs said:

    ... you don't have to kill all the text in one command; you can
    keep killing line after line, or word after word, until you have
    killed it all, and you can still get it all back at once.  (Thus
    we join television in leading people to kill thoughtlessly.)

(The parenthetical remark about television was removed sometime later
and the other wording slightly improved.)

Perhaps more significantly, RMS asked many people whether they were
bothered by the jargon use of `kill'.  They said `no'.  It turned out
that RMS asked people he thought of as significant, namely people at
M.I.T.  I think that was too narrow a group.  But that is what
happened, and I still think it was a mistake.

Most important of all, please emphasize and explain that Emacspeak is
safer than many programs.  What you write is automatically saved to
disk.  This means you can work with unreliable power supplies, or
learn by trying out new things and make what otherwise would be
catastrophic mistakes.

You can experiment and learn.

    Robert J. Chassell                         Rattlesnake Enterprises
    http://www.rattlesnake.com                  GnuPG Key ID: 004B4AC8
    http://www.teak.cc                             bob@rattlesnake.com

To unsubscribe from the emacspeak list or change your address on the
emacspeak list send mail to "emacspeak-request@cs.vassar.edu" with a
subject of "unsubscribe" or "help"

Emacspeak Files | Subscribe | Unsubscribe | Search