在 emacs 中,有时我正在查找文件、切换缓冲区或在迷你缓冲区中执行某些操作,然后出于某种原因单击了其他地方。当我返回时,使迷你缓冲区提示再次处于活动状态的唯一方法是单击迷你缓冲区内部,这很烦人,因为它是一个很薄的区域。有没有办法不使用鼠标切换回活动的迷你缓冲区提示?
答案1
这将满足您的要求。绑定到您选择的键:
(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)
答案2
C-x o
必要时请重复。
Cx o 运行命令 other-window,它是“C 源代码”中的交互式内置函数。
如果您不想循环切换窗口,您可以在 init 文件中添加一个函数并将其绑定到一个键。类似下面的方法可能会有效:
(defun select-minibuffer ()
"Make the active minibuffer the selected window."
(interactive)
(when (active-minibuffer-window)
(select-window (active-minibuffer-window))))
答案3
另一种选择是使用switch-window
我发现它是一个非常有用的包:它允许你以视觉方式快速移动到任何 Emacs 窗口(而且我确实在 Emacs 中使用了很多打开的窗口)。
但我刚刚发现,如果它处于活动状态,它还允许您移动到迷你缓冲区:
希望能帮助到你。
答案4
;; faster switching between windows in the same frame
(windmove-default-keybindings)
将上述两行代码添加到 .emacs.el 将实现简单高效的移动,不仅可以移动到 minibuffer,还可以使用以下命令导航 Emacs 框架上的所有其他窗口Shift-箭头键。