梳子是一種本機Emacs LISP解決方案,用於搜索,瀏覽和註釋文件中的正則表達式。交互式接口允許對所有結果進行詳盡的分類,以排除代碼審核期間的誤報和驢子的適當匹配。
M-x package-install RET comb
M-x package-install-file RET /path/to/comb/
( add-to-list 'load-path " /path/to/comb/ " )
( require 'comb )這是梳子的某些功能的快速演練。進行搜索:
移至要審核的存儲庫的根目錄;
運行Mx comb ;
按c進入配置模式;
填寫所需的字段,最後執行搜索。
如果有一些結果可以瀏覽,則顯示*Comb*緩衝區,從這裡可以註釋結果( ! )並將其狀態更改為批准的( a / A ),被拒絕( r / R )或不確定( u / U ,默認值)。
上述操作在當前結果上起作用,該結果可以移至下一個( n )或上一個( p ),在此操作中, *Comb*緩衝區已更新以顯示包含結果的文件,現在突出顯示了結果。僅顯示與狀態過濾器(與f一起循環)的結果,並顯示了註釋濾波器Regexp(用F設置)。除此之外, t還催生一個包含當前顯示結果列表的緩衝區,這允許搜索片段並在點上跳到結果。
最後,可以將當前的會話保存到s中並加載回審核( l )。
有關所有功能和關鍵框架的列表,請參見幫助( h )。
梳子使用的模式是Emacs-Fravory Regexps(請參閱(elisp) Regular Expressions信息節點)。 Mx regexp-builder實用程序可用於在執行搜索之前與Regexps進行交互嘗試,只需確保使用適當的語法( Cc TAB string )並拋棄周圍的環境" 。
梳子還接受可用於生成其他搜索結果的回調列表,例如,來自外部刺激工具。這些功能將使用default-directory集合到根目錄,當前緩衝區設置為當前處理的文件,它們接受相對路徑作為參數,並且必須返回表單中的範圍列表(BEGIN . END) 。
這是一個示例回調:
( defun my-callback ( filename )
" Match only the first occurrence of 'qwerty'. "
( when ( re-search-forward " qwerty " nil t )
( list ( cons ( match-beginning 0 ) ( match-end 0 )))))回調執行中的錯誤不是致命的,只是在*Messages*緩衝區中報告了它們。
可以配置一些面孔和選項,查看comb自定義組( Mx customize-group RET comb )。
此外,可以通過更改comb-keymap來改變*Comb*緩衝液中的所有鍵符號。例如,使用箭頭導航結果:
( define-key comb-keymap ( kbd " <left> " ) 'comb-prev )
( define-key comb-keymap ( kbd " <right> " ) 'comb-next )但是,這並不能解開原始鍵符。完全替換KEYMAP可能很方便,以免與現有模式發生衝突:
( setq comb-keymap ( make-sparse-keymap ))
( define-key comb-keymap ( kbd " x " ) 'comb-quit )
( define-key comb-keymap ( kbd " ? " ) 'comb-help )
( define-key comb-keymap ( kbd " <left> " ) 'comb-prev )
( define-key comb-keymap ( kbd " <right> " ) 'comb-next )
; ; ...請參閱comb-default-keybindings alist,以獲取默認鍵鍵的功能。