2013-01-16 76 views
4

我用ido-mode Emacs的24歲以下具有以下設置:Emacs ido:如何首先顯示特定的文件結尾?

(ido-mode 1) 
(setq ido-enable-flex-matching t) 
(setq ido-everywhere t) 
(setq ido-use-filename-at-point 'guess) 
(setq ido-use-url-at-point t) 
(setq ffap-require-prefix t) 

假設你有相同的名稱,但在當前目錄不同的結局多個文件。如果您通過C-x b更改緩衝區,則會收到若干建議。這些建議的順序是否會受到某種影響?

作爲示例,假設您在當前目錄中有多個Sweave(.Rnw)文件。它們總是比從它們創建的對應(.tex)文件更重要。所以在大多數情況下,您想要將緩衝區更改爲.Rnw文件,而不是.tex文件。因此,如果首先建議.Rnw文件(在存在具有相同基本名稱的.Rnw和.tex文件的所有目錄中),那將會很好。

回答

7

「如果你想調整默認的文件排序,像製作Sweave-文件首先出現,告訴IDO哪些文件給予了較高的優先級排序:」

(setq ido-file-extensions-order '(".Rnw" ".tex")) 

但它僅適用於ido-find-file不適用於ido-switch-buffer。緩衝區按排序most recent屬性排序。我不知道功能,它通過most recent添加了另一個排序屬性。函數ido-file-extension-lessp可用於這種方式對緩衝區列表進行排序。但是兩種排序可能會相互衝突。

+0

非常感謝,artscan。我嘗試着從你的建議中繼續,看看周圍,但也找不到「ido-switch-buffer」的「明顯」答案。 –

+0

任何想法,爲什麼這不適合我?沒有改變:'(setq ido-file-extensions-order'(「.py」「.r」「.cpp」「.tex」「.txt」)'?文件夾中的'.log'首先顯示'ido-find-file'。 – PascalVKooten

+0

我想你測試它的長度爲1的文件名,例如「a.py」,「ar」等...它也不適用於我的情況。名字長度大於1,例如「ab.py」,「ab.r」等等......沒關係 – artscan

相關問題