2011-09-11 22 views
4

標題可能沒有足夠好地描述這個問題。許多基於GUI的編輯器允許您按下組合鍵,然後開始輸入文件名(在任何目錄中的任意位置),並且在您輸入時,會實時篩選與該模式匹配的所有文件。如果您按回車鍵,當前突出顯示的文件將被打開,或者如果您點擊向上或向下箭頭,您可以更改選擇。例如,在TextMate和Sublime Text 2(在OS X上),這是通過點擊CMD + T來實現的。在Emacs的CLI中等價於GUI「快速打開」?

enter image description here

現在我知道在Emacs約find-diredfind-grep,但還有什麼可說的多一點瞬間?與dired惱人的事情是,你必須按回車鍵並執行搜索,以查看文件名是否正確。如果你知道文件名,這是可以的,但是當你根據受過教育的猜測進行時不會那麼好。這似乎是emacs可能適合的東西。將目錄設置爲索引(僅一次),然後在搜索時使用基數樹搜索或某些類似過濾索引,使用拆分窗口顯示文件並響應向上和向下箭頭以調整選擇。

什麼都有? :)

回答

1

Anything.el這是否符合文件,它可以做更多的事情。 Here's a good introduction關於如何使用它。

+0

這裏有一個名爲Helm的分支,它的目的是作爲更新和替換:https://github.com/emacs-helm/helm – phils

0

ido-mode本身很棒,但您可能會發現Find File In Project這樣的更好的選項可以用來匹配目錄樹中任何位置的文件名模式。

M-Xfind-file-in-projectRET選擇目錄樹的自動根(基於目錄的局部變量文件)。

我剛纔注意到,該的Mxffip-find-file-in-dirtreeRET,我也有可用的(並且適用於任意指定的目錄樹,不管項目文件)實際上是通過提供附帶nxhtml的ffip.el 。

後者也看起來像它在啓用時支持ido。 (實際上,有一個錯誤,但將(if (memq ido-mode '(file 'both))改爲(if (memq ido-mode (list 'file 'both))(defun ffip-find-file-in-project (file) ...)

無疑會有各種類似的可用選項。

+0

nxhtml ffip.el可以在這裏找到:http:// bazaar.launchpad.net/~nxhtml/nxhtml/main/view/head:/util/ffip.el – phils

0

不幸的是,這些都不相同的方式工作:d ... 我用「崇高文本2」很長一段時間太長......昨天決定試試使用「emacs」(「vim」非常不舒服)。所以,我想要這個功能:

  1. 您指向項目的根文件夾。

而且瞧 - 你有「快速查找」功能。

但是......沒有這樣的功能:(...

(例如 - 「查找文件,在項目」 - 它需要你設置了「一號文件」在根因此它會知道它是你項目的根源......但是如果我必須同時處理好幾個項目呢?......其中一些是 - 使用git,其中一些是--SVN,還有一些他們 - 這些都沒有......:D ......「崇高的文字」在飛行中處理這種情況......但emacs和vim - 無:(......)

儘管如此,仍然在等待答案...

+0

ffip提供*許多*自動確定項目根的不同方法(閱讀庫註釋)。根據項目的不同,有些項目根本不需要特別的配置,但是無論如何我建議每個項目一次性的行動來告訴Emacs項目根目錄是否適用於所有未來的行動,而不是必須手動指向當你想做一個'快速查找'的時候到項目根目錄? – phils

+0

我強烈反對,因爲我經歷了許多使用完全不同的項目的情況 - 有/無版本控制,不同的語言(PHP,Python或純HTML/CSS) - 所以手動指向文檔根目錄是最簡單和最有效的方式......當然! ...(可能所有的項目都只有一種類型,或者你必須一次在一個項目上工作......但在我的情況下,情況恰恰相反)......這就是爲什麼像這樣的功能在「崇高文本」中對我來說是完美的 - 指向文檔根目錄 - 瞧! ...您可以快速找到該文檔根:) –

+0

我在多個項目上工作 - 這就是爲什麼我喜歡ffip在我打電話時自動選擇正確的一個 - 並且如果我需要一次性快速查找這不是一個真正的項目,有'find-name-dired'。不過,我們顯然確實有不同的用例。希望你能找到/寫出符合你需求的東西。 – phils

0

我發現它,我沒有想要:(...

一個名爲「Control-P」for vim的插件提供了該問題的作者正在尋找的完全相同的功能。

例如 - 在這個視頻 - http://www.youtube.com/watch?v=YhqsjUUHj6g - 去26:55,在那裏你會發現一個快速和非常乾淨的例子。所以,用一個命令指向文檔根目錄,之後 - 你很好去:) ...