2010-03-03 63 views
37

我正在尋找一種方法使Vim能夠通過模糊搜索其名稱來打開文件。使用模糊搜索在Vim中打開文件

基本上,我希望能夠定義一個項目一次,然後有一個快捷方式,這將給我一個地方鍵入一個文件名,並將匹配,如果任何字母匹配。

這種功能存在於我見過的大多數編輯器中,但對於我來說,我無法理解如何讓Vim來做到這一點。

請注意,我正在尋找的東西,不會要求我有任何想法在我的目錄樹中的文件是。我只是希望能夠通過文件名來打開它,不管它是在什麼目錄。

感謝

回答

51

這裏有兩個很棒的vim插件。

ctrlp

  • 用純VimL
  • 作品幾乎無處不
  • 支持,以提高性能
  • 最受歡迎的模糊搜索插件自定義查找器Vim的

Command-T

  • 寫在C,VimL和Ruby
  • 快速開箱
  • 需要在Vim中+ruby支持
  • 建議的Vim版本> = 7.3

編輯:

我使用CtrlPag作爲我的自定義查找程序,它非常快速(即使在大型項目中)也非常便攜。

使用agCtrlP的例子:

if executable('ag') 
    " Use Ag over Grep 
    set grepprg=ag\ --nogroup\ --nocolor 

    " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore 
    let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' 
endif 
+3

因爲發佈這個問題,我已經轉向使用ctrlp,就像許多其他Vim'ers一樣。我現在認爲它是去因素文件切換器插件(Command-t緊隨其後)。 – 2013-06-27 06:34:22

+2

使用ctrlp和自定義查找命令,例如ack或甚至更好的ag(銀搜索者)。即使你啓用了c find命令,它也會加快你的搜索速度。我與看守的經驗有點慢 – 2014-05-24 00:39:27

+0

'set grepprg'有什麼意義? – hasen 2015-10-08 17:53:58

2
+0

我看着這一點,但它似乎並沒有做什麼,我希望(它看起來像它不搜索目錄中的所有文件) 。我只是設置不正確? – 2010-03-03 15:36:21

+1

你可能是。通常,包含目錄及其所有子目錄中的所有文件。 – 2010-03-03 18:06:05

+0

另外:http://stackoverflow.com/questions/1894614/vim-fuzzyfinder-usage-tips-gotchas-how-can-one-make-use-of-this-plugin/1897075#1897075 – 2010-03-03 18:06:32

3

CommandT Vim的是非常多的功能相媲美,如TextMate的。我的工作流程是現在

1)開拓的MacVim

2):CD〜/ MY_PROJECT

3)(我有這個映射爲安裝幫助描述)

4)CV該文件在垂直分割中打開文件,或者CR打開新的水平分割。

5)關閉拆分,使用:BD(緩衝刪除)

6)切換到另一緩衝器,我已安裝BufferExplorer,所以只是\是和選擇

此工作流是可比TextMate,需要一段時間才能習慣,而且我還在學習。

+0

這太棒了。有沒有像這樣的插件不需要Ruby和編譯?在Windows上很多,這將是驚人的。 – drozzy 2012-01-20 18:31:40

+0

https://github.com/Shougo/unite.vim – 2013-12-07 02:14:07