Directory
通過文件名而不是完整路徑在 emacs 中打開文件
假設我有一堆目錄,並且可以保證沒有兩個目錄具有共同的文件名(即如果
foo/bar
存在,則bar
在任何其他目錄中都不存在)。如何設置 emacs,以便在給定.emacs
要搜尋的目錄中的硬編碼列表的情況下,我可以告訴它打開bar
它並發現它在其中,而不是我每次都foo
需要告訴它?foo/bar
如果它以某種方式處理名稱衝突(例如可能的匹配列表)會更好,但這不是強制性的,因為我確定在這種情況下目錄沒有共同的文件名
當我寫這篇文章時,我發現
ifind-mode
它看起來很準確。(setq workspace-dir "/path/to/dir1 /path/to/dir2") (require 'ifind-mode) ;; maybe change `ifind-command' as well
然後鍵入
M-x ifind-mode
以在指定目錄(預設為子目錄)中查找文件,並完成漂亮的操作。我通常做的是
e **/bar
來自 zsh (其中e
是 的別名emacsclient
)。但是,如果您已經在 Emacs 中,那將是破壞性的。此外,如果有一個我經常編輯的特定文件,我會將其保持打開狀態(並保存我的會話)。開箱即用,您可以執行
M-x find-dired
並指定find
. 但這很笨拙,至少在你有一個匹配的情況下是這樣。ifind
使這不那麼笨拙。
ido
有一堆可能有用的特性,尤其是使用 ido 從項目中查找任何文件。