2009/03/05

打造自己的VIM: 多檔字串搜尋 EasyGrep

在追蹤源碼時,除了最常用到的tags方式,另外搜尋也是不可少的功能之一,在Linux環境底下最常見的方式就是開個termianal用grep搜尋,再到自己的文字編輯器把相對應的檔案打開,當搜尋的機會變多,這樣的動作真是麻煩又囉嗦。為了縮短這些麻煩regular routine,有人寫了一個plugin [EasyGrep]。EasyGrep主要是把Grep的功能整合在VIM裡,它可以使用跨平台VIM內建的vimgrep或是外部的指令grep、findstr等指令,而它是將搜尋結果輸出到QuickFix視窗,更多的QuickFix使用可以參考小弟寫得[這篇文章];基本上因為輸出到QF視窗的關係,也使得這個套件更好用了。要直接看demo可以到[這裡看]。而底下是它的option截圖,大家可以看一下它提供那些功能。






安裝方式請至官網下載EasyGrep.vim and EasyGrepFileAssociations到你的vim plugin資料匣,其中EasyGrepFileAssociations為設定搜尋檔案關連性,像上面那張圖的第30行,我設定ASM檔包括*.s *.asm...等5種檔案,各位可以修改Easy...Associations來更改這個值。

基本上EasyGrep不需要什麼特別的配置,因為它提供的快速鍵就足夠使用了。以下我整理了我常用的指令(就4個而已):

<leader>vv- Grep for the word under the cursor
<leader>va - Like vv, but add to existing list
<leader>vo - Select the files to search in and set grep options
:Grep SearchString


<leader>預設值是對應到"\"。

大部分的調整是都在<leader>vo裡找的到,只是有少部分的預設值可以從vimrc裡修改,像我自己是加了底下這些預設值,這些預設值大都是for windows才需要的,除了第1個是為了很懶的我,連5個字都要建個mapping變只需打2個字,哈哈。
map f/ <esc>:Grep
let g:EasyGrepCommand = 1
let g:EasyGrepFileAssociations = "C:\\Program Files\\Vim\\vim72\\plugin\\EasyGrepFileAssociations"
let g:EasyGrepRecursive = 1
let g:EasyGrepHidden = 0
let g:EasyGrepExtraWarnings=0
let g:EasyGrepIgnoreCase= 1


No comments: