Como voltar a um prompt minibuffer ativo no emacs sem o mouse

37

No emacs, às vezes eu vou estar no meio de encontrar um arquivo ou trocar buffers ou fazer algo no minibuffer, e vou clicar em algum outro lugar por algum motivo. Quando eu volto, a única maneira de fazer com que o minibuffer seja ativado novamente é clicar dentro do minibuffer, o que é chato porque é uma área fina. Existe alguma maneira de voltar para um prompt minibuffer ativo sem usar o mouse?

    
por Ryan Thompson 18.04.2010 / 08:41

4 respostas

25

Isso fará o que você quiser. Vincular à chave de sua escolha:

(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)
    
por 19.04.2010 / 05:38
22
C-x o 

Repita conforme necessário.

C-x o executa o comando other-window, que é um built-in interativo função em 'código-fonte C'.

Se você não quiser percorrer as janelas, poderá adicionar uma função ao seu arquivo init e vinculá-la a uma chave. Algo como isso pode funcionar:

(defun select-minibuffer ()
 "Make the active minibuffer the selected window."
 (interactive)
 (when (active-minibuffer-window)
   (select-window (active-minibuffer-window))))
    
por 18.04.2010 / 19:43
6

Outra opção é usar switch-window

Acho que é um pacote realmente útil: ele permite que você se mova rapidamente para qualquer janela do Emacs, visualmente (e eu uso muitas janelas abertas no Emacs).

Mas acabei de descobrir que também permite que você mude para o minibuffer, se estiver ativo:

Espero que ajude.

    
por 17.12.2013 / 15:28
0
;; faster switching between windows in the same frame
(windmove-default-keybindings)

A adição de duas linhas de código acima ao .emacs.el permitirá a movimentação simples e eficiente, não apenas para o minibuffer, mas também para navegar por todas as outras janelas no quadro do Emacs usando Seta para Shift .

    
por 12.02.2017 / 04:39