如何在没有鼠标的情况下在 emacs 中返回活动的迷你缓冲区提示

Rya*_*son 38 focus emacs mouseless minibuffer

在 emacs 中,有时我会在查找文件或切换缓冲区或在小缓冲区中执行某些操作的过程中,出于某种原因我会单击其他位置。当我回去时,使 minibuffer 提示再次激活的唯一方法是在 minibuffer 内部单击,这很烦人,因为它是一个薄区域。有没有办法在不使用鼠标的情况下切换回活动的迷你缓冲区提示?

Tre*_*son 26

这会做你想做的。绑定到您选择的密钥:

(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)
Run Code Online (Sandbox Code Playgroud)

  • 如果你有多个帧,那么你需要在 `select-window` 之前添加 `(select-frame-set-input-focus (window-frame (active-minibuffer-window)))`。 (2认同)

Ric*_*ins 25

C-x o 
Run Code Online (Sandbox Code Playgroud)

根据需要重复。

Cx o 运行命令 other-window,它是 C 源代码中的一个交互式内置函数。

如果您不想在 windows 之间循环,您可以在 init 文件中添加一个函数并将其绑定到一个键。像这样的事情可能会奏效:

(defun select-minibuffer ()
 "Make the active minibuffer the selected window."
 (interactive)
 (when (active-minibuffer-window)
   (select-window (active-minibuffer-window))))
Run Code Online (Sandbox Code Playgroud)


rse*_*nna 6

另一种选择是使用 switch-window

我发现它是一个非常有用的包:它允许您在视觉上快速移动到任何 Emacs 窗口(我确实在 Emacs 中使用了很多打开的窗口)。

但我刚刚发现它也允许您移动到迷你缓冲区,如果它处于活动状态:

在此处输入图片说明

希望能帮助到你。