2011-09-05 99 views
1

當使用emacs ido模式啓用緩衝區切換時,完成列表將顯示在小緩衝區中。看起來有一個「功能」,已經打開的緩衝區被放到列表的末尾。但是,我經常在多個窗格中打開相同的緩衝區。Emacs ido在循環列表中首先打開緩衝區

有沒有辦法關閉這個「功能」,或者做相反的事情:讓已經打開的緩衝區位於完成列表的前面?

回答

1

ido模式的要點在於,您不要使用箭頭在小緩衝區中的緩衝區之間導航。而是鍵入緩衝區名稱的一部分。在這種情況下,緩衝區在列表中的位置並不重要。

+0

當多個緩衝區有一個公共前綴時,它們列出的順序決定了到達特定緩衝區需要多少個Cs。所以訂單確實很重要。 – momeara

+0

您可以鍵入緩衝區名稱的任何部分。如果你有緩衝區名稱,比如test_feat_a.py,test_feat_b.py等,那麼在這種情況下你只需鍵入名稱的唯一部分'_a'或'_b'。 – eGlyph

0

這是不可能的,除非你想在艾多的腸子裏深深地跋涉。

正如eGlyph已經說了:你很有可能使用IDO錯誤(還有還有C-s<right>C-r<left>;無需箭頭鍵)。

但是你可以爲已經表現出緩衝器當中選擇定義命令(只從當前幀這裏,如果你想所有顯示緩衝區你必須先通過`幀列表收集窗口):

(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)))) 
+0

「深入到ido的腸子」 - >我害怕那樣。還是)感謝你的建議 – momeara