是否有 Emacs 键盘快捷键用于在切换缓冲区时在不明确的缓冲区名称之间进行选择

Is there an Emacs keyboard shortcut for selecting between ambiguous buffer names when switching buffers

在 emacs 中,我已经在使用 iswitchbuffer,但我仍然希望通过缓冲区切换提高工作效率。

一个经常出现的常见情况是我有 6 或 7 个相同或几乎相同的文件名。例如:

server.py<proj1> server.py<proj2> server.py<proj3>... foo_server.py<proj4>

问题是我在切换缓冲区时必须输入大部分目录上下文。

键入目录上下文的现有替代方法是弹出 saying:e

的完成 window
Click on a completion to select it.
In this buffer, type RET to select the completion near point.

Possible completions are:
... ....

但这也不令人满意,因为我必须切换到 window 并使用鼠标选择一个。

我更喜欢使用 Tab 键或其他键来突出显示替代缓冲区 select 离子,然后输入 select 一个。有办法吗?

在iswitchb-mode(及其继任者1 ido-mode)中循环遍历候选项的默认绑定是Ctrl+sCtrl+r.

您应该能够通过输入文件名的公共位来限制您的候选人,然后循环浏览具有这些绑定的候选人。

1 请参阅 iswitchb.elido.el 中的 header 文本。

如果您使用 icomplete-mode(有点像 iswitchb-mode,但适用于所有补全,而不仅仅是缓冲区),您可以循环到 next/previous 匹配候选 C-,C-..

另一个选项,如果您使用默认完成系统(带或不带 icomplete-mode),则输入 serv*1(例如)到 select server.py<proj1>