What exactly determines what is inserted by
self-insert-command? If I change the input-method to greek,
p will insert π, but will still be bound to
self-insert-command, though it patently does not insert itself. C-h k p will say that p is still
bound to self-insert-command and that p was translated to
π, but says nothing more about this translation.
Any hints as to how I might have found the answer to this myself (using EMACS) would be appreciated too.
PS. I realize the question may not be entirely clear. To put it differently, what is the simplest way to let a insert foo, while remaining bound to self-insert-command? Does this have to be done by an input method, or does translation indicate something more general?