通常,我知道文件名,但不記得或發現指定精確目錄的麻煩。我希望能夠做find-file x/y/*/some_file.txt,其中*將允許在遞歸目錄中搜索,而不是僅在當前目錄中搜索。如何在目錄中遞歸地查找文件
回答
Icicles命令icicle-locate
(或icicle-locate-file
,如果您沒有適用於您的操作系統的locate
程序)就是爲此而設計的。 Locate a file anywhere under a given directory(包括~HOME
或根目錄)。
您可以匹配絕對文件名的任何部分(即路徑和文件名)。您可以使用幾種匹配,包括正則表達式,子字符串和模糊匹配。
ido-find-file
做到這一點:當你進入不匹配當前目錄 任何文件名,它採用類似locate
匹配 你對你的系統上的所有文件寫什麼。
的設置是隻有一行:
(ido-mode)
在此之後,C-X C-F將調用ido-find-file
。 另外,我通常會添加:
(setq ido-enable-flex-matching t)
,因爲我喜歡它,但有了它,你會locate
更多結果, 即foo
也將匹配froo
。
這不會找到遞歸。它只在當前目錄中進行模糊搜索! Flplr更好 – mythicalcoder
編輯:我發現與projectile
好得多,請參閱我的其他答案。
沒有找到-recursive.el:http://www.webweavertech.com/ovidiu/emacs/find-recursive.txt
下載它,把它放在你的負載路徑,並要求它在你的.emacs:(這是無法通過ELPA或EL-獲得)
(require 'find-recursive)
現在當你調用Mx find-recursive時,它會要求一個文件名來遞歸搜索一個基本目錄,然後你必須在結果列表中選擇一個文件。不幸的是,它並沒有融入到ido中,但我喜歡它,有時它很有用。
如果項目目錄中有文件,我使用了Fiplr,它使用同一作者的模糊搜索庫。
https://github.com/d11wtq/fiplr
這可從MELPA。
,我沒有嘗試過其他的解決辦法是https://github.com/technomancy/find-file-in-project
這是輕量級的,並達到目的。 – mythicalcoder
我一直期待該功能,我現在滿意的是什麼,我發現:我使用的是helm-projectile
。
Projectile
是一個項目交互庫。項目是包含.projectile文件的VCS目錄或目錄。它是基於GNU找到(但提供了純淨的Emacs Lisp實現過)
https://github.com/bbatsov/projectile
(你可以用packages.el
安裝)。您可以單獨使用它:請致電projectile-find-file
(或projectile-mode
和C-c p f)。它使用ido
默認完成,但在這種情況下,我更喜歡helm-projectile
的界面。
由於該功能,我的同事們不斷告訴我使用Sublime Text。幸運的是,我發現拋射物:)
子彈很棒。使用簡單,直觀。 – gosukiwi
這是一個解決方案,可以讓您選擇性地搜索文件和子目錄。要使用它,你需要Dired+和Icicles。
該命令僅在Dired中使用,爲icicle-visit-marked-file-of-content-recursive
(或其-other-window
版本)。它綁定到M-+ C-F
(對於其他窗口,請使用M-+ C-O
- 是的,這些是大寫F
和O
)。
做些什麼:
提供,爲完成候選人,所有標誌着當前Dired目錄文件,pslus所有這些在任何標誌着子目錄已經Dired緩衝區等遞歸。
您可以訪問與您的小型緩衝器輸入相匹配的任意數量的此類候選項,包括所有這些候選項。你可以訪問一些匹配minibuffer輸入模式的模式,然後改變模式以匹配並訪問其他模式---全部在相同的命令調用中。
"Matching" your input can mean either or both:
- 匹配的文件名
- 配套文件內容
也就是說,你的輸入可以是兩部分(分離擊中
C-M-j
:一個文件-n ame部分和文件內容部分。通過匹配文件名縮小選擇範圍,並通過匹配這些文件中的文本進一步縮小範圍。這種搜索速度很快 - 只要在文件中找到單個匹配項就會成功。您可以省略其中任一部分:僅匹配文件名(快速)或僅匹配文件內容(較慢,自然)。
您可以組合輸入模式 - progressive completion。增加額外的模式以增量和交互方式進行匹配要比試圖提供一個正好符合您需要的正則表達式要容易得多。
每個輸入模式(兩部分模式的每個部分)可以是正則表達式。模糊匹配也是可用的。
您也可以在您的Dired緩衝區中插入子目錄,而不是將它們作爲獨立的Dired緩衝區。在Dired緩衝區中標記的任何文件和子目錄都以相同的方式處理。
如果你不想陷入被標記爲子目錄,您可以使用命令,
icicle-visit-marked-file-of-content
的非遞歸版本,勢必C-F
(C-O
其他窗口)。
如果您還使用Bookmark+那麼您可以爲一個Dired緩衝區或一組Dired緩衝區添加書籤。書籤記錄哪些文件和子目錄被標記,哪些子目錄被插入,哪些文件和子目錄被省略。跳到這樣的書籤可以恢復所有這些事情。這給你一個方法進行快照的項目,然後您可以利用搜索等M-+ C-F
很多列出的選項,我使用的下一個命令:
find-file-in-current-directory
你可以把它放在你的.emacs這樣的:
;; Find file in current directory:
(global-set-key (kbd "C-M-,") 'find-file-in-current-directory)
界面看起來很熟悉的那些誰使用fsf工具(https://github.com/junegunn/fzf)
- 1. 遞歸地查找目錄中的文本文件的計數
- 2. 在jsTestDriver中遞歸地查找文件
- 3. 如何從目錄中遞歸地查找所有文件擴展名?
- 4. 如何遞歸遍歷目錄樹並僅查找文件?
- 5. 在目錄中查找最舊的文件(遞歸)
- 6. 如何遞歸地查找包含特定類型文件的*目錄*?
- 7. 如何找到,如果遞歸目錄中的文件也是在bash目錄B存在遞歸
- 8. 遞歸查找目錄中的所有文本文件
- 9. 如何在Java中遞歸地查找文件?
- 10. 如何在Linux中遞歸查找目錄中的所有* .js文件?
- 11. 列出文件遞歸地目錄名
- 12. 遞歸查找目錄中文件的數量
- 13. Python遞歸搜索目錄以查找文件的存在
- 14. 如何在Python中查找遞歸空目錄?
- 15. 在C++中通過遞歸查找目錄和子目錄
- 16. 如何include目錄遞歸NuSpec文件
- 17. 如何使此查找命令在當前目錄中遞歸地工作?
- 18. 如何在Perl腳本中遞歸查找文件/文件夾?
- 19. 如何使用PHP在文件夾中遞歸地查找文件?
- 20. 如何遞歸地重命名目錄
- 21. 如何在ASP.NET中遞歸地查找控件
- 22. 查找不包含文件的目錄遞歸
- 23. 找到並gzip目錄遞歸沒有目錄/文件測試
- 24. 使用Powershell使用查找文件遞歸地重命名目錄
- 25. XXD和Grep遞歸地在文件目錄中
- 26. 在Qt中遞歸地瀏覽目錄,跳過文件夾「。」。和「..」
- 27. 在目錄中遞歸地區分某些類型的文件
- 28. 遞歸查找HDFS文件夾中的最大文件或子目錄
- 29. 如何使用Python /正則表達式在目錄中遞歸地查找特定的子文件夾名稱?
- 30. Flume「假脫機目錄源」遞歸 - 查找子目錄內的文件
擴展這樣的路徑有兩個潛在的危險:可能有多個有效的擴展,可能有太多的路徑去嘗試(特別是如果有目錄循環),所以probab你必須使用'find-name-dired'這樣的東西。 – 2013-09-26 23:46:31