Как вернуться к активной подсказке минибуфера в emacs без мыши
6011
Ryan Thompson
В emacs иногда я нахожусь в процессе поиска файла, переключения буферов или выполнения каких-либо действий в минибуфере, и я по какой-то причине щелкну где-нибудь еще. Когда я возвращаюсь, единственный способ снова активировать подсказку минибуфера - это щелкнуть внутри минибуфера, что раздражает, потому что это тонкая область. Есть ли способ вернуться к активному приглашению минибуфера без использования мыши?
Если у вас есть несколько кадров, вам нужно добавить `(select-frame-set-input-focus (window-frame (active-минибуфер-окно)))` `перед` select-window`.
dshepherd 9 лет назад
2
@dshepherd Я могу подтвердить, что после вставки строки Elisp, обогащенная функция работает хорошо только с одним кадром. Благодарю.
dimitarvp 8 лет назад
0
@dshepherd Спасибо, соответственно обновил код.
Trey Jackson 8 лет назад
0
22
Richard Hoskins
C-x o
Повторите по мере необходимости.
Cx o запускает команду other-window, которая является интерактивной встроенной функцией в `C исходном коде '.
Если вы не хотите переключаться между окнами, вы можете добавить функцию в файл инициализации и связать ее с клавишей. Нечто подобное может работать:
(defun select-minibuffer () "Make the active minibuffer the selected window." (interactive) (when (active-minibuffer-window) (select-window (active-minibuffer-window))))
Почему вы хотите включить `RET`? Он будет автоматически принимать все, что было в минибуфере (при условии, что один Cx o переключен на минибуфер). Как правило, может потребоваться использовать Cx o несколько раз, если в кадре (на языке Emacs) открыто несколько окон (в обычных терминах GUI: несколько панелей в окне).
Chris Johnsen 14 лет назад
1
You're right. My bad.
Richard Hoskins 14 лет назад
0
Есть ли способ попасть прямо в минибуфер, не перебирая все окна? Должен ли я просто написать цикл, который выполняет `other-window`, пока текущее окно не станет минибуфером?
Ryan Thompson 14 лет назад
0
I find it to be a really useful package: it allows you to quickly move to any Emacs window, visually (and I do use a lot of open windows in Emacs).
But I just find out it also allows you to move to the minibuffer, if it is active:
Hope it helps.
Связанный пакет - это [`swap-buffers`] (https://github.com/ekazakov/swap-buffers/blob/master/swap-buffers.el), который использует тот же метод для замены текущего буфера на другой в другом окно.
pyrocrasty 9 лет назад
1
0
Cảnh Toàn Nguyễn
;; faster switching between windows in the same frame (windmove-default-keybindings)
Добавление двух приведенных выше строк кода в .emacs.el позволит легко и эффективно перемещать не только минибуфер, но и перемещаться по всем остальным окнам в кадре Emacs с помощью Shift-Arrow .