当我在迷你缓冲区中选项卡完成并且Emacs在新缓冲区中显示完成列表时,如何在不使用鼠标的情况下切换到该缓冲区?
我尝试了C-x o
,但刚刚切换到第一个缓冲区,我进入了迷你缓冲区。
我也尝试了C-x b
,但这给了我command attempted to use minibuffer while in minibuffer
。
最后,我尝试了C-x <C-right>
,它给了我cannot switch buffers in minibuffer window
。
M-v
快捷方式,但它似乎只能在M-x
访问的迷你缓冲区内工作,在我尝试过的每个其他缓冲区中,M-v
绑定到scroll down command
并且不会切换到完成列表。我似乎甚至没有在其他miniuffers工作。例如,它在M-!
调用的shell命令迷你缓冲区中不起作用。
答案 0 :(得分:10)
您可以使用 M-v (记录为here)切换到完成缓冲区并将光标置于第一次完成时:
在迷你缓冲区中键入M-v,选择显示该窗口的窗口 完成清单(切换到完成)。这为使用铺平了道路 以下命令。
<PageUp>
或<prior>
也是如此。你也可以 以其他方式选择窗口......
编辑:根据您对原始问题的编辑看起来,您要求的是一种更全局地切换到完成缓冲区的方法。有一个函数switch-to-completions
可以选择完成列表 - 您可以考虑将该函数绑定到您选择的键上,例如:
(define-key global-map (kbd "C-x t") 'switch-to-completions)
例如,这样的绑定允许我从 M - !调用的“Shell命令:”切换到完成,并将光标置于第一个可能的完成位置。
答案 1 :(得分:2)
您可以使用 Cx o 两次,或使用 M - Cx o ,它切换到前一个缓冲区而不是下一个缓冲区。