Текст Emacs застревает в минибуфере
Я использую GNU Emacs 24.4.1 (правка: также видна с 24.5.1). Некоторый старый вывод из vc-mode (я думаю) появляется в минибуфере:
Auto-merging foo/bar
В данный момент я не делаю никаких операций контроля версий, но этот текст застрял в минибуфере. Нажатие Cg на короткое время заменяет его на Quit, но оно возвращается при следующем нажатии клавиши.
Что это не так: это не рекурсивное редактирование. C-] или abort-recursive-edit
выдает ошибку No recursive edit is in progress
и неловкий текст в минибуфере все еще там.
Это не текст, выделенный мышью, так как я работаю в текстовой консоли (сеанс экрана GNU через ssh) без поддержки мыши.
Я попробовал switch-to-minibuffer
команда от http://www.emacswiki.org/emacs/MiniBuffer но это дает ошибку Minibuffer is not active
, И все же этот неловкий текст продолжает появляться.
Это не проблема размера экрана (с устаревшим текстом, потому что Emacs не знает правильный размер окна терминала), потому что я могу изменить размер окна терминала, и Emacs изменяет размер с ним правильно... с текстом, все еще отображаемым в минибуфере.
Иногда я видел этот эффект с двумя или более строками текста в минибуфере. Фактически, мой текущий сеанс Emacs имеет это в одном сеансе клиента (emacsclient -nw
) на одном экране, причем основной сеанс показывает только одну строку. Сеанс клиента показывает несколько строк ганк контроля версий в минибуфере:
Auto-merging foo/bar
CONFLICT (content): Merge conflict in foo/bar
Как я могу заставить его уйти?
0 ответов
Это могло произойти, если вы ударили C-g
для завершения запущенной команды оболочки. Это оставит окно минибуфера, указывающее на*Shell Command Output*
буфер.
Как описано в ошибке № 25209, вы можете проверить, произошло ли это, позвонив(minibuffer-window)
в рабочем буфере:
(minibuffer-window)
#<window 2 on *Shell Command Output*>
и исправить это с помощью:
(set-window-buffer (minibuffer-window) (get-buffer " *Minibuf-0*"))
Это было исправлено в этом коммите, и исправление было выпущено как часть Emacs 26.1.