COMB는 파일에서 정규 표현식의 검색, 탐색 및 주석을 달성하기위한 기본 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 )이것은 Comb의 일부 기능 중 빠른 연습입니다. 검색을 수행하려면 :
감사하려는 저장소의 루트 디렉토리로 이동하십시오.
Mx comb 실행하십시오.
구성 모드를 입력하려면 c 누릅니다.
원하는 필드를 채우고 마지막으로 검색을 수행하십시오.
찾아 볼 수있는 결과가 있으면 *Comb* 버퍼가 표시됩니다. 여기에서 결과 ( ! )에 주석을 달고 해당 상태를 승인 된 ( a / A ), 거부 ( r / R ) 또는 미정 ( u / U , 기본값)으로 변경할 수 있습니다.
위의 조치는 다음 ( n ) 또는 이전 ( p )으로 이동할 수있는 현재 결과에 대해 작동하므로 *Comb* 버퍼는 결과가 포함 된 파일을 표시하도록 업데이트됩니다. 상태 필터 ( f 로 순환)와 메모 필터 regexp ( F 로 설정)와 일치하는 결과 만 표시됩니다. 그 외에도 t 현재 표시된 결과 목록을 포함하는 버퍼를 스폰하여 스 니펫을 검색하고 포인트의 결과로 점프 할 수 있습니다.
마지막으로 현재 세션을 s 에 저장하고 다시로드하여 감사 ( l )를 재개 할 수 있습니다.
모든 기능 및 키 바인딩 목록은 도움말 ( h )을 참조하십시오.
COMB에서 사용하는 패턴은 EMACS 맛의 regexps ( (elisp) Regular Expressions 정보 노드 참조)입니다. Mx regexp-builder 유틸리티는 검색을 수행하기 전에 Regexps를 대화식으로 시도하는 데 사용될 수 있습니다. 적절한 구문 ( Cc TAB string )을 사용하고 주변을 종료하십시오. "
Comb은 또한 외부 라인팅 도구에서 나오는 추가 검색 결과를 생성하는 데 사용할 수있는 콜백 목록을 허용합니다. 이러한 기능은 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 Customization Group ( Mx customize-group RET comb )을 살펴보십시오.
또한, *Comb* 버퍼의 모든 키 바인딩은 comb-keymap keymap을 변경하여 변경 될 수 있습니다. 예를 들어 화살표를 사용하여 결과 사용을 탐색합니다.
( define-key comb-keymap ( kbd " <left> " ) 'comb-prev )
( define-key comb-keymap ( kbd " <right> " ) 'comb-next )이것은 원래 키 바인딩을 풀지 않습니다. 기존 모드와 충돌을 피하기 위해 키 맵을 완전히 교체하는 것이 편리 할 수 있습니다.
( 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를 참조하십시오.