Emacs ido在循环列表中首先从打开的缓冲区开始

Emacs ido在循环列表中首先从打开的缓冲区开始,emacs,ido-mode,Emacs,Ido Mode,在启用emacs ido模式的情况下切换缓冲区时,小型缓冲区中会显示一个完成列表。似乎有一个“特性”将已打开的缓冲区放在列表的末尾。一、 但是,通常在多个窗格中打开同一缓冲区 有没有办法关闭此“功能”,或者反过来做:将已打开的缓冲区放在完成列表的前面?ido模式的要点是不使用箭头在迷你缓冲区中的缓冲区之间导航。而是键入缓冲区名称的一部分。在这种情况下,缓冲区在列表中的位置无关紧要。ido模式的要点是,您不使用箭头在迷你缓冲区中的缓冲区之间导航。而是键入缓冲区名称的一部分。在这种情况下,缓冲区在列

在启用emacs ido模式的情况下切换缓冲区时,小型缓冲区中会显示一个完成列表。似乎有一个“特性”将已打开的缓冲区放在列表的末尾。一、 但是,通常在多个窗格中打开同一缓冲区


有没有办法关闭此“功能”,或者反过来做:将已打开的缓冲区放在完成列表的前面?

ido模式的要点是不使用箭头在迷你缓冲区中的缓冲区之间导航。而是键入缓冲区名称的一部分。在这种情况下,缓冲区在列表中的位置无关紧要。

ido模式的要点是,您不使用箭头在迷你缓冲区中的缓冲区之间导航。而是键入缓冲区名称的一部分。在这种情况下,缓冲区在列表中的位置无关紧要。

除非你想深入ido的肠道,否则这是不可能的

正如eGlyph已经说过的:你很可能错误地使用了ido(对于
还有
C-s
,对于
还有
C-r
;不需要箭头键)

但您可以定义用于在已显示的缓冲区中进行选择的命令(此处仅从当前帧中选择,如果您想要所有显示的缓冲区,则必须首先通过“帧列表”收集窗口):


这是不可能的,除非你想深入ido的肠道

正如eGlyph已经说过的:你很可能错误地使用了ido(对于
还有
C-s
,对于
还有
C-r
;不需要箭头键)

但您可以定义用于在已显示的缓冲区中进行选择的命令(此处仅从当前帧中选择,如果您想要所有显示的缓冲区,则必须首先通过“帧列表”收集窗口):


当多个缓冲区有一个公共前缀时,它们的列出顺序决定了到达特定缓冲区所需的C-s数量。因此顺序很重要。您可以键入缓冲区名称的任何部分。如果您有诸如test_feat_a.py、test_feat_b.py等缓冲区名称,那么您必须只键入名称的唯一部分,
\u a
\u b
。在本例中,当多个缓冲区具有公共前缀时,它们的列出顺序决定了到达特定缓冲区所需的C-s数量。因此顺序很重要。您可以键入缓冲区名称的任何部分。如果你有像test\u feat\u a.py、test\u feat\u b.py等缓冲区名称,那么你必须只键入名称的唯一部分,
\u a
\u b
,在这种情况下。“深入ido的肠道”->我很害怕。谢谢你的建议,尽管“深入我的肠道”->我很害怕。谢谢你的建议
(defun choose-from-shown-buffers ()
  (interactive)
  (let ((buffers (mapcar (lambda (window)
                            (buffer-name (window-buffer window)))
                         (window-list))))
      (pop-to-buffer (ido-completing-read "Buffer: " buffers))))