7

当我在 minibuffer 中 tab-complete 并且 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并且不会切换到完成列表。我什至似乎不在其他 minibuffers 中工作。例如,它在任何一个调用的 shell 命令 minibuffer 中都不起作用M-!

4

2 回答 2

11

您可以使用M-v在此处记录)切换到完成缓冲区并将光标放在第一个完成上:

在 minibuffer 中键入 Mv,选择显示完成列表的窗口(切换到完成)。这为使用以下命令铺平了道路。<PageUp><prior>做同样的事情。您还可以通过其他方式选择窗口...

编辑:根据您对原始问题的编辑,您要求的是一种更全局地切换到完成缓冲区的方法。有一个switch-to-completions选择完成列表的功能 - 您可以考虑将该功能绑定到您选择的键,例如:

(define-key global-map (kbd "C-x t") 'switch-to-completions)

例如,这样的绑定允许我从由 调用的“Shell 命令:”切换到完成M-!,并将光标放在第一个可能的完成上。

于 2013-08-06T16:22:47.220 回答
2

您可以使用C-xo两次,或者使用M--C-xo,切换到上一个缓冲区而不是下一个缓冲区。

于 2013-08-06T15:15:57.920 回答