>>>> "SJT" == Stephen J Turnbull writes:
I've finally guessed. =))
SJT> AFAIK isearch does not override global-map as a whole.
Yes, and it's the problem. (suppress-keymap ...) in a nutshell undefines
all Cyrillic keys (as well as ASCII ones) -- but isearch, when called
From a mode with such a map, needs them -- and doesn't know, how to
restore them.
There's a block in isearch-mode.el:
--8<------------------------schnipp------------------------->8---
;; Bind all printing characters to `isearch-printing-char'.
;; This isn't normally necessary, but if a printing character were
;; bound to something other than self-insert-command in global-map,
;; then it would terminate the search and be executed without this.
(let ((i 32)
(str (make-string 1 0)))
(while (< i 127)
(aset str 0 i)
(define-key map str 'isearch-printing-char)
(setq i (1+ i))))
--8<------------------------schnapp------------------------->8---
Is seems, the only thing one needs is to add Cyrillic initialization
there. =)) I can write mapping for all letters keysums, as Stephen
suggests, like this:
(define-key isearch-mode-map [т] 'isearch-printing-char)
But would it be grecefil? IIRC, GNU Emacs doesn't have this problem. Can
anyone say, how this case is worked around there? If there's no a better
way for two days, I'll post a quick Russian work-around, as described
before.
---Vas