2013-06-28 70 views
1

https://github.com/emacs-helm/helm-ls-git尋找helm-ls-git教程(emacs,helm)

在google上找不到教程。
這意味着它不存在於我們的宇宙?

我正在尋找一種方法來查找emacs中的文件和grep文件。
希望和project directory opened一樣容易。
(您的搜索會自動限制在您指定的目錄中)

+2

這是一個[helm項目](https://github.com/emacs-helm)的350行elisp擴展,它本身有很好的文檔記錄。如果你使用的是emacs *和* git,那麼當然這個片段不應該讓你困惑。幫助拯救世界,記錄並將其添加到回購。或寫作者並要求退款。 – msw

+0

我看着elisp文件,但是,唉,我不擅長elisp,不知道如何使用它..什麼是我可以使用helm-ls-git來達到目的的2-3個命令? – eugene

+0

我不是co,,我不知道;我幾十年來一直沒有使用emacs/elisp,並且不使用git。 – msw

回答

2

您所追求的功能是dired多年來一直在成功實施的功能。您在文章中鏈接的文件只是對內置功能添加的便利功能的小幅增強,它並不涉及在Git版本控制系統範圍之外搜索文件。

這裏是你如何能做到這一點一些例子與dired

的Mxfind-name-dired,回答提示選擇目錄要搜索,並可能通過提供一個正則表達式匹配文件名細化。然後您將看到列出您迄今選擇的所有文件的緩衝區。您可以通過進一步細化,併爲其提供正則表達式來過濾文件名,或者只需點擊t選擇緩衝區中的所有文件。

然後點擊A並編寫正則表達式來搜索所選文件的內部。該命令的作用是打開找到匹配的文件。關閉文件後,或返回原始緩衝區後,可以按M-,移至下一個匹配項。


如果這聽起來太複雜,那麼你可以只是的Mxfind-dired在你的參數選擇目錄調用find可以正常提供find


要公正grep和有匹配顯示在一個專門的緩衝區,你可以做Mxfind-grep - 這將調用find與它的輸出管道到grep。然後您需要修改用於根據您的喜好調用此命令的命令。

M-Xfind-grep-dired會做同樣的事情,但它會顯示文件,這裏的比賽在一個dired緩衝區中發現,而不是線條,比賽發生的位置。


最後,可能會有一大堆更多的方式來做到這一點,取決於你的特定任務,什麼,到最後,你要完成。也許有時候,調用shell命令將結果直接放在緩衝區中是最好的方法。其他時候,您可能希望編寫自己的eLisp函數,以便對結果進行更詳細的說明。天空是他限制:)

+0

感謝'dired'的詳細介紹。不過,我已經使用它一段時間了。 '我必須去目錄搜索以使用任何dired命令,並且我覺得它很乏味'......你能初始化一個目錄嗎,這樣之後的任何dired命令都會使用該目錄作爲根目錄(其他IDE中的項目) ? – eugene

+0

以及將搜索限制在具有特定擴展名的文件的功能。我知道我可以做直接搜索和標記單個文件。但是,當有許多文件匹配時,這也很乏味。 – eugene

+0

@eugene例如,您可以爲一個目錄添加書籤。 'M-x r m'標記,'M-x r b'打開書籤目錄。如果這是你經常使用的某個非常特殊的文件夾,你可以在'.dir-locals.el'中放置一個特殊的文件,在那裏你可以實際上放置任何eLisp代碼來定製這個特定的目錄。更多信息:http://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html – 2013-06-28 21:24:46

0

這可能不是回答你的全部問題,但我用的elisp的以下位作爲快捷方式greping特定文件夾下(可擴展)的一組列表中的所有文件:

(defun pgrep (regexp) 
    "rgrep files inside a project folder" 
    (interactive 
    (list (grep-read-regexp))) 
    (grep-compute-defaults) 
    (rgrep regexp "*rb *erb *js *css *scss" "~/path/to/folder/")) 

然後,我只需運行M-x pgrep foo

對於任何更復雜的操作,我只是直接運行rgrep - 它允許您指定根文件夾,搜索字符串和擴展名。