37

В emacs иногда я нахожусь в процессе поиска файла, переключения буферов или выполнения каких-либо действий в минибуфере, и я по какой-то причине щелкну где-нибудь еще. Когда я возвращаюсь, единственный способ снова активировать подсказку минибуфера - это щелкнуть внутри минибуфера, что раздражает, потому что это тонкая область. Есть ли способ вернуться к активному приглашению минибуфера без использования мыши?

4 ответа4

25

Это будет делать то, что вы хотите. Привязать к ключу на ваш выбор:

(defun switch-to-minibuffer-window ()
  "switch to minibuffer window (if active)"
  (interactive)
  (when (active-minibuffer-window)
    (select-frame-set-input-focus (window-frame (active-minibuffer-window)))
    (select-window (active-minibuffer-window))))
(global-set-key (kbd "<f7>") 'switch-to-minibuffer-window)
22
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))))
6

Другой вариант - использование switch-window

Я считаю, что это действительно полезный пакет: он позволяет вам быстро перейти к любому окну Emacs, визуально (и я использую много открытых окон в Emacs).

Но я просто выясняю, что он также позволяет вам перейти к минибуферу, если он активен:

Надеюсь, поможет.

0
;; faster switching between windows in the same frame
(windmove-default-keybindings)

Добавление двух приведенных выше строк кода в .emacs.el позволит легко и эффективно перемещать не только минибуфер, но и перемещаться по всем остальным окнам в кадре Emacs с помощью Shift-Arrow.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .