2011-08-24 40 views
1

如何在Emacs的minibuffer中使用軟件自動跳轉?如何在Emacs的minibuffer中使用軟件自動跳轉?

我喜歡在命令行中使用autojump以節省在路徑之間導航的時間。當我編輯不同的文件時,我覺得在Emacs迷你緩衝區中需要相同的便利。如何實現這一目標?

[編輯]

我目前使用的是調用shell模式在Emacs的緩衝器和在該殼式的Emacs緩衝器使用autojump另一種方法。或者轉向shell程序(Terminal,iTerm等)並在那裏運行autojump。然後將我使用autojump找到的路徑複製到Emacs minibuffer中。

+0

宥應該增加更多的細節問題,所以我們知道爲什麼提供的解決方案使您能夠通過鍵入幾個字符不適合跳轉到文件系統中的任何文件。你想要什麼不同? – Tom

回答

1

只需使用最近的文件名列表來完成文件名完成。 This page解釋瞭如何做到這一點,並列出了幾個完成軟件包。

從我的經驗,我建議Iswitchb完成或任何完成從列出的替代品。

更新:here is an other page from Emacswiki它描述瞭如何快速到達文件系統中的任何位置。

1

我不熟悉autojump,但是我跟着你的鏈接閱讀了描述。 「維護一個你使用最多的目錄的數據庫」聽起來像是爲了完成minibuffer而過度殺毒,但我相信你可以編寫一些代碼來整合現有的數據庫。

我建議只是這些方法之一:

  • 依靠小緩衝區(文件名/目錄名)的歷史。但是使用一個完成軟件包,可以讓您輕鬆獲得歷史上您想要的任何內容。如果你想持久化,那麼使用`savehist.el'自動保存歷史記錄。

  • 使用Emacs 書籤 - 書籤一些Dired緩衝區是對你很重要。如果您使用IciclesBookmark+然後文件和目錄(Dired)書籤可作爲候選,只要你使用文件名完成 - 只要按下C-×m的完成對書籤名稱。

+0

自動完成和訪問歷史記錄方法不能解決重複鍵入長路徑前綴的問題,這正是autojump解決的問題。所以我認爲德魯和湯姆的建議不是最好的解決方案。但是,謝謝任何方式。 –

+0

我覺得這裏有一個誤區。完成正好用於輸入長路徑。您只能輸入幾個字符,並且可以到達文件系統中的任何位置。 – Tom

+0

我不認爲有任何誤解。使用自動完成功能,人們必須輸入足夠長的*前綴*才能將其自動填充到唯一的完整路徑。使用autojump時,不必輸入足夠長的*前綴*,但完整路徑中足夠長的*部分就足夠了。 –