Skip to Content.
Sympa Menu

emacspeak - Re: [Emacspeak] How can I set the prefix?

Subject: Emacspeak discussion list

List archive

Re: [Emacspeak] How can I set the prefix?


Chronological Thread 
  • From: Tim Cross <theophilusx AT gmail.com>
  • To: "Esben Stien" (via emacspeak Mailing List) <emacspeak AT emacspeak.net>
  • Cc: Esben Stien <b0ef AT esben-stien.name>
  • Subject: Re: [Emacspeak] How can I set the prefix?
  • Date: Sat, 07 Sep 2024 10:28:20 +1000


I think this is a really bad idea. There are a number of complications
which will arise if you do this. Also, selecting a good prefix is very
hard and something you really don't want to do when learning a new
package. For one thing, lack of experience with the package makes it
almost impossible to select a new prefix which will work well. For
example, your selected prefix along with other key bindings used by
both emacspeak and emacs make me think your chosen binding has a high
risk of causing RSI or at the very least, inefficiency in typing.

The other thing to consider is what is already bound to the prefix you
have chosen. For example, on my system C-M-s is bound to
isearch-forward-regexp, a command I use fairly regularly. I believe
this is the default binding.

Key binding is a very tricky process to get right and an extremely
common mistake made by early users. The main challenge is in avoiding a
cascade change where your earlier key binding changes result in having
to do more and more changes down the track as you either add new
packages or start using existing features you haven't yet learnt
about. If your an experienced emacs user, you may already know all of
this and I apologise for preaching at you, but given your new to
emacspeak, I'm guessing your probably fairly new to emacs as well and
I'm hoping this will help you avoid making a common emacs mistake. Know
that in general, a lot of thought and consideration has gone into emacs
key bindings, especially for the core functionality of emacs. It is
underpinned by a combination of experience, consistency and philosophy
built up over decades and thousands of users.

Key binding selection and making key binding decisions should be the
very last step in your emacs and emacspeak configuration and should only
be done once you have established your basic workflows and used it for
long enough that you are no longer needing to frequently refine it. It
is only at that point you will have a good understanding of where
default key bindings are inefficient or inconvenient for your use case
and which alternativbe candidates would be better and the implications
changing to them will have.

Having said that, people do sometimes have good reasons for wanting to
change the emacspeak prefix. Perhaps outline why you feel it is
necessary and get some suggestions/feedback from others who have been
using the package for longer.

If you still want to go ahead with making this change, then look at the
variable emacspeak-prefix and the code in the emacpseak-keymaps.el file.
One complication of using C-e as the prefix is that by default, that is
the prefix for move-end-of-line, which is a standard key binding. To
avoid breaking too many things, emacspeak re-binds that to C-e C-e and
because of this change, also makes adjustments in many of the other
packages emacspeak supports. This is also related to the error you are
getting.

The C-e prefix was deliberately chosen for emacspeak because you want a
short prefix and you want something easy to recall. However, achieving
both those goals is difficult given the number of key bindings emacs
already has. However, it was considered important enough that the
disadvantages were outweighed by the benefits. This does mean
that changing the prefix is going to be much harder as you will also
need to deal with the underlying assumption that the package changes
move-to-end-of-line bindings.

Bottom line, you can change the binding, after all, this is emacs and
you can do almost anything. However, this will break things and you will
have to spend significant time debugging what it breaks.




Archive powered by MHonArc 2.6.19+.

Top of Page