我們有一個巨大的,古老的,可怕的代碼庫,這使得當你需要它時幾乎不可能找到東西。我們正在努力改進它,當然......但我經常發現自己正在做大量的遞歸greps來搜索文件的內容以找到使用的地方。命令行全文索引?
是否有一個工具可以用來在目錄中建立文本文件的全文索引,然後從命令行中查詢該文件?
首選可以在用戶空間運行並且不需要守護進程的東西。我們的開發服務器上有很多用戶,所以我想要通過我的代碼庫實例進行搜索。
我們有一個巨大的,古老的,可怕的代碼庫,這使得當你需要它時幾乎不可能找到東西。我們正在努力改進它,當然......但我經常發現自己正在做大量的遞歸greps來搜索文件的內容以找到使用的地方。命令行全文索引?
是否有一個工具可以用來在目錄中建立文本文件的全文索引,然後從命令行中查詢該文件?
首選可以在用戶空間運行並且不需要守護進程的東西。我們的開發服務器上有很多用戶,所以我想要通過我的代碼庫實例進行搜索。
我 「GID」(又名 「ID-utils的」)的大風扇:
用法很簡單:
安裝ID-使用你最喜歡的包管理器(例如「sudo apt-get install」或「yum」)
「CD」的源目錄並運行的根「MKID」
您可以通過命令行
你也可以用它從「VIM」或任意數量的其他工具使用。
PS:「ctags」是另一件好事,看看:http://ctags.sourceforge.net/,http://www.thegeekstuff.com/2009/04/ctags-taglist-vi -vim編輯器,AS-sourece代碼瀏覽器/ – paulsm4 2012-08-05 05:32:20
Russ Cox寫道a series of articles describing how the Google Code Search algorithm worked。他在a set of command-line tools that can do fast regex searches over a local codebase中重新實現了該算法的簡化版本。
另一種方法是使用類似ctags的東西來創建代碼中使用的標識符的索引。許多編輯器(包括我使用的Vim)都可以使用這個標籤文件來快速跳轉到標識符的定義。
cd /path/to/project
ctags -R
這將創建一個tags
文件Vim會使用,則:
vim -t someFunctionName
將在函數定義打開VIM!
還有一些讓生活更簡單的鍵盤快捷鍵。
CRTL+] will jump to the definition of the method under the cursor
CRTL+t will go back
我有一個類似的需要在一個大的C++項目上工作。在調查了一些工具之後,我發現id-utils是最好的選擇,因爲它在構建索引和搜索模式方面確實很快。
根據ID-utils的,我做了一個命令行工具和VIM插件來解決我的需求:
希望它能幫助。
任何特定的語言或環境? – 2012-08-05 05:18:22
你有沒有試過['ack'](http://betterthangrep.com)?我通常發現速度夠快,不需要全文索引,即使在真正的大型項目上也是如此。 – 2012-08-05 05:24:01
@GregHewgill宇,看起來很有趣。不錯的域名太:) – 2012-08-05 05:28:27