Добрый день всем,
мой старый добрый Carbon Emacs развил разочаровывающую привычку: когда я использую C-s, минибуфер запрашивает строку поиска, но она не фокусируется. Очевидно, что ввод в строку ничего не делает. Я понятия не имею, какой буфер имеет фокус в то время.
Когда я нажимаю C-g, поиск отменяется как обычно. Когда я нажимаю Return, подсказка I-search превращается в подсказку Search, и минибуфер восстанавливает фокус. Обновление --- Когда я набираю C-w, текущее слово, как обычно, задается как строка поиска, и последующие C-s ускоряют поиск, как и ожидалось.
AFAIK, я ничего не менял в файле .emacs, ничего не настраивал. Версия emacs такая же, как и ОС. Это поведение также переживает перезапуск Emacs. Даже emacs -q не решает эту проблему.
Обновление - выясняется, что `focus '- не то слово; с i-search фокус остается на буфере, в котором вы ищете, но мини-буфер повторяет поисковый запрос. Ну, это должно быть, но это не так. Итак, следующий фрагмент смотрит в неправильном направлении.
Я попробовал этот фрагмент, чтобы восстановить фокус на минибуфере:
(defun minibuffer-refocus ()
"Refocus the minibuffer if it is waiting for input."
(interactive)
(when (active-minibuffer-window)
(message "")
(select-window (minibuffer-window))))
(global-set-key (kbd "C-M-g") 'minibuffer-refocus)
Но безрезультатно. В других случаях он работает как брелок, но не для инкрементального поиска ... Обновление - Этого следовало ожидать.
Есть ли кто-нибудь, кто имеет представление о том, что происходит, или есть советы, чтобы выследить это? Это действительно раздражает ...
Подробнее
- GNU Emacs 22.3.1 (i386-apple-darwin9.5.0, Carbon Version 1.6.0) от 2008-11-01 на leopard.local
- OSX 10.6.7
- C-s запускает команду isearch-forward
Обновление
хорошая новость в том, что это решено. Плохая новость в том, что я не знаю как: - (
Обновление
Плохая новость в том, что он вернулся снова. Я также понимаю, что приведенный выше фрагмент действительно помогает, потому что мини-буфер на самом деле не фокусируется.