2015-04-20 36 views
1

我最近從使用Eclipse切換到emacs。我試圖找到一種方法來模擬eclipse的Ctrl-Shft-r功能,該功能允許您輸入文件名,並開始顯示當前工作區中以您輸入的字符串開頭的所有文件。Emacs命令查找和打開類似於Eclipse的文件

C-x C-f似乎只處理當前目錄中的tab-completion,而Eclipse的功能則查看所有子目錄以查找匹配的文件。

我正在尋找一些東西(也許有一個插件可以做到這一點),它允許你輸入要查找的文件夾名稱,然後輸入部分文件並將結果返回到緩衝區。可能使用自動完成來列出匹配文件及其完整路徑。

回答

3

首先,避開香草find-file函數(這是您在擊中C-x C-f時運行的交互功能)。這是非常有限的,它迫使你一直打到TAB,大多數人在切換到emacs時做的第一件事是用更加powffull替換find-file

有很多選擇。 ido-mode是一個,helm是另一個。前者重量輕,速度快並且內置了emacs。後者是非常強大的,並努力加快速度。

所有的二,這裏有兩種方式遞歸文件搜索通常可以做到:

  1. 目錄搜索 - 那就是當你只是搜索目錄,這裏沒有驚喜;
  2. 項目搜索 - 這是當你設置一個項目你的工作,從而使emacs意識到你現在感興趣的文件。

對於目錄搜索,ido-find-filehelm-find-file都是可行的選項。 Ido在您暫停輸入時自動執行搜索;舵使用(C-u) M-g s激活grep。有關更多信息,請參閱this SO question

對於項目搜索,您需要一個庫來管理您的項目。 Projectile是偉大的。設置它並使用C-c p fC-c p F分別列出當前或全部項目中的文件。哦,並且彈丸默認使用ido,但是也有is頭盔支援。

+0

感謝您的回覆,我沒有想到替換命令,所以我會看看。我也意識到,自從我使用eclim以來,它提供了'eclim-file-locate',我可以使用類似於eclipse的'ctrl-shift-r'。您列出的方法不僅僅支持eclim,但它們會在其他方面幫助我。 – Sleaker

+2

FWIW:我會*不*說*「避開香草'find-file' *」。我懷疑「*大多數人****在切換到emacs時所做的第一件事就是替代'find-file' *」 - 遠離它。否則,答案是確定的。FWIW:您可以使用[Icicles](http://www.emacswiki.org/emacs/Icicles)獲得相同類型的「強大」,即時展示候選人行爲。 (你也可以使用'TAB'來獲得完全按需的行爲,這在Emacs的環境中是沒有用處的。)在Emacs中,有許多方法可以對貓進行皮膚處理。 Emacs默認的開箱即用(香草)行爲也不錯。 – Drew

1

您正在尋找爲您的項目文件編制索引的projectile。我用了一段時間,但最近已切換到使用helm-recentf

(global-set-key "\C-x\ \C-r" 'helm-recentf) 

我有最近的文件設置爲一個很大的數字。幾乎所有我打開過的東西都是幾個擊鍵。這甚至可以作爲切換緩衝區的方便途徑。

(require 'recentf) 
(setq recentf-auto-cleanup 'never) 
(recentf-mode 1) 
(setq recentf-max-saved-items 200) 
相關問題