在emacs中,有时我会在寻找文件,切换缓冲区或在minibuffer中做某事的过程中,由于某种原因,我会单击其他位置。当我返回时,使微型缓冲区提示再次激活的唯一方法是在微型缓冲区内单击,这很烦人,因为它是一个很小的区域。有什么方法可以在不使用鼠标的情况下切换回活动的微型缓冲区提示?
在emacs中,有时我会在寻找文件,切换缓冲区或在minibuffer中做某事的过程中,由于某种原因,我会单击其他位置。当我返回时,使微型缓冲区提示再次激活的唯一方法是在微型缓冲区内单击,这很烦人,因为它是一个很小的区域。有什么方法可以在不使用鼠标的情况下切换回活动的微型缓冲区提示?
Answers:
这将做您想要的。绑定到您选择的键:
(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)
C-x o
根据需要重复。
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))))
RET
?它会自动接受微型缓冲区中的任何内容(假设有一个C-x o
切换到微型缓冲区)。通常,C-x o
如果框架中有多个窗口打开(按Emacs的说法),则可能需要多次使用(按常规GUI术语:该窗口中有多个窗格)。
other-window
直到当前窗口成为minibuffer吗?
另一种选择是使用 switch-window
我发现它是一个非常有用的软件包:它可以让您直观地快速移至任何Emacs窗口(并且我确实在Emacs中使用了许多打开的窗口)。
但是我发现它还允许您移动到迷你缓冲区(如果处于活动状态):
希望能帮助到你。
swap-buffers
使用相同的方法将当前缓冲区与另一个窗口中的缓冲区交换。
;; faster switching between windows in the same frame
(windmove-default-keybindings)
将以上两行代码添加到.emacs.el将实现简单有效的移动,不仅是移动到迷你缓冲区,而且还可以使用Shift-Arrow导航Emacs框架上的所有其他窗口。
(select-frame-set-input-focus (window-frame (active-minibuffer-window)))
之前添加select-window
。