2013-01-23 61 views
2

我最近發現了以下文件以查找Vim中的文件。查找vim中的文件:如何與Explore **進行部分文件名匹配/ *

:Explore **/[pattern] 

查找文件對我來說非常重要,我不敢相信我已經做了8年。我可以涉及到什麼這位先生說:http://vim.wikia.com/wiki/Find_files_in_subdirectories

我看到人們在TextMate中搜索文件,並有掛我的頭在恥辱:(

因此,使用上述我能夠搜索文件, 「在理論上」,但輸出擋板我,經常有不匹配的文件,我會用一個Rails例如

例如這樣做:

Explore **/envir* 

息率這一點,這一串額外的奇怪文件:

../ 
deploy/ 
environments/ 
initializers/ 
locales/ 
.DS_Store 
application.rb 
authorization_rules.rb 
boot.rb 
config.yml 
database.yml 
deploy.rb 
development.sphinx.conf 
environment.rb 
production.sphinx.conf 
routes.rb 
sphinx.yml 
staging.sphinx.conf 
test.sphinx.conf 

這是至少可用的,我可以向下滾動到environment.rb並打開它。

但說我想找到所有助手的列表。我會這樣認爲:

Explore **/*help* 

會工作,但沒有找到任何文件。

有人能照亮我嗎?

回答

3

你看看Ctrl-P.vim插件嗎? https://github.com/kien/ctrlp.vim

這個插件以類似於您展示的方式查找文件。

+1

+1表示CtrlP。您看到人們在TextMate中使用的是命令-t選項。有一個名爲CommandT的Vim插件可以完成模糊文件查找,但不再維護它。 CtrlP是新的熱點,可能會讓你開心。 –

3

不,:Ex[plore] **/foo*很爛。

上述提到的CtrlP是一種美容(儘管存在一些限制,我可以廣泛使用它),它允許您在您的項目和其他細節中查找文件。 FuzzyFinderCommand-T是值得選擇的,LustyExplorer以及顯然很多其他。

但是Vim本人還是很有能力的。 wildmenu選項是關鍵,在這裏。就在這兩行添加到您的~/.vimrc

set wildmenu   " see :h 'wildmenu' 
set wildmode=list:full " see :h 'wildmode' for all the possible values 

通過上面的設置,下面的命令顯示你,你可以很容易地和相對直觀地找到匹配的準確名單。

:e **/foo*<Tab>  " see :h starstar 

如果將「工作目錄」設置爲您的項目目錄,那麼該命令肯定會給您帶來好的結果。這不是很性感(我喜歡它,但它),但它的非常有效和可靠的。當然,這種方法可以與:sp:vs:tabe一起使用。

:find命令更好,可能更適合您的需要:它會查看path選項中定義的目錄。:set path=/path/to/project在會話的開始,你可以在你的項目中打開的任何文件有:

:find foo<tab>   " see :h :find 

整潔。

另一種可能性是使用「參數」。你們都匹配某種模式的文件添加到您的「參數列表」和使用緩衝區導航命令:

:argadd ./**/*.js  " see :h arglist 
:sb foo<tab> 

但它可以是一個有點凌亂。總的來說,在Vim中有很多優雅的方式來處理文件導航(我甚至沒有提及基於導航的tags!)。插件可以爲很多導航需求提供一個很好的統一用戶界面,但它們不需要有效地查找文件。完全一樣。

有趣的是,TextMate和Sublime Text的模糊搜索實現實際上僅限於當前的「項目」,而這些Vim插件或Vim的buit-in文件處理並非如此。

+0

看起來你需要輸入':find ./**/foo '遞歸文件名 –

+0

@ WillemD'haeseleer no,':find'是遞歸的:':find foo '會找到任何以' foo'和':find * foo '會在名字的某個地方找到每個帶有'foo'的文件。 – romainl

+0

我正在使用vim 7.4,並且當我執行':find foo '和匹配':find ./**/foo '時,我得到一個響鈴,該文件是1個目錄深,我可以做錯了? –

0

如果你想要的只是簡單的:找到類型的功能,但與部分文件名匹配標籤自動完成,find-complete插件是好的。

相關問題