提到vim的模糊查詢外掛,很多人第一反應是ctrlp.vim,ctrlp知名度很高,但跟其它的同類外掛相比,它的唯一優點是用vimL編寫(這讓它的效能是所有同類外掛中最差的)。本文向大家推薦一款模糊查詢外掛——LeaderF,無論是從效能還是匹配精度上,都遠遠超越ctrlp。
LeaderF是什麼?
LeaderF是一個用Python寫的vim外掛,可以在成千上萬數十萬個檔案中,通過模糊查詢的方式,快速找到目標檔案。它還有很多衍生功能:快速開啟或定位某個buffer、最近使用的檔案(mru)、tags(包括函式、類、變數等)、命令歷史、檔案中的某一行、vim的help、marks等等。
查詢檔案
檔案查詢是vimer的常用操作,海量檔案中快速定位目標檔案是很多vimer迫切需要的功能,所以就有了ctrlp這樣的外掛。但ctrlp效能不佳,而且有時候把目標檔名都輸入進搜尋欄還是找不到目標檔案,最大的問題是它的模糊匹配演算法不佳,經常排在前面的跟所要找的相去甚遠。LeaderF採用非同步檢索和精心設計的模糊匹配演算法完美地解決了這些問題,當你在根目錄(/
)按下搜尋命令,再也沒有想剁手的衝動了; 查詢檔案時,用更少的鍵擊次數就可以找到目標檔案, 延長你的鍵盤使用壽命 :)
-
非同步檢索
-
模糊查詢
-
正規表示式查詢
-
多位元組字元查詢(中文查詢)
快速定位tags(包括函式、類、變數等)
有了它,tagbar可以淘汰掉了:
查詢歷史命令
切換Colorscheme
當然還有其他功能就不一一展示了,感興趣的小夥伴可以檢視這裡。
你不知道的細節
- 智慧大小寫(smartcase)
如果輸入的搜尋字元都是小寫字母,則匹配是大小寫不敏感的;如果輸入大寫字母,則只匹配大寫字母,小寫字母仍然是大小寫不敏感的。例如,輸入abcDef
,可以匹配如下字串:
abcDef
AbcDef
abcDEf
aBcDeF
但不能匹配:
abcdef
Abcdef
注意:abc
和ef
仍然是大小寫不敏感的
這樣可以通過大寫字母,在搜尋過程中快速縮小搜尋範圍。
-
同時開啟多個檔案
-
細化搜尋結果
開箱即用
上面所有的功能都不需要額外的配置,只要裝好LeaderF外掛就可以使用了,不像有的外掛,配置就像一門新的指令碼語言。
最後
LeaderF還支援寫擴充套件程式,這裡是一個樣例。