히스토리
- occur 사용법을 문득 배움
관련메타
특정 패턴을 찾아서 새로운 버퍼로 모으기
Emacs에서
M-x occur RET ^| RET
로 테이블 위치를 한눈에 볼 수 있습니다.
문제되는 테이블 패턴을 위 기준으로 찾아 수정해보세요! 그래도 안되면 해당 테이블 부분을 복사해서 올려주세요.
로그
|2025-07-10 Thu 14:14|
@user 이맥스에서 occur에 대해서 설명해줘. 중복되는 기능들이 있는데 occur의 장점은 무엇인가?
@assistant occur는 Emacs에서 버퍼 내 특정 문자열(또는 정규표현식)이 등장하는 모든 줄을 한 번에 목록으로 보여주는 명령입니다. 주로 M-x occur 또는 =C-u M-s o=로 실행할 수 있습니다.
주요 특징 및 장점:
-
빠른 개요 제공: 버퍼 전체에서 검색어가 포함된 줄만 모아 별도의 버퍼(
*Occur*)에 리스트로 보여줍니다. 이를 통해 해당 문자열의 전체 맥락을 한눈에 파악할 수 있습니다. -
탐색 용이:
*Occur*버퍼에서 원하는 줄을 선택하면 원본 버퍼의 해당 위치로 즉시 이동할 수 있습니다. (RET키 사용) -
정규표현식 지원: 단순 문자열뿐 아니라 정규표현식으로도 검색할 수 있어, 복잡한 패턴 탐색이 가능합니다.
-
복수 편집:
occur-edit-mode=를 이용하면 =*Occur*버퍼에서 직접 내용을 수정하고, 이를 원본 버퍼에 반영할 수 있습니다. -
경량화:
isearch,swiper,grep등과 달리 외부 프로그램을 사용하지 않고, 현재 버퍼 내에서만 동작하므로 빠르고 가볍습니다.
중복되는 기능과의 차이점:
- =isearch=(점진적 검색)는 한 번에 한 위치씩 이동하며, 전체 개요를 보기 어렵습니다.
- =grep=은 여러 파일을 대상으로 하지만, 파일 내 한눈에 보기에는 적합하지 않습니다.
- =swiper=(ivy 패키지)는 실시간 미리보기를 제공하지만, occur의 목록화/편집 기능은 부족합니다.
요약: =occur=는 버퍼 내 특정 패턴이 어디에 얼마나 등장하는지 빠르게 파악하고, 한눈에 탐색·수정하기에 매우 효율적입니다. 코드나 문서 내 전체 구조를 빠르게 파악하고자 할 때 특히 유용합니다.
@user consult-line과 embark을 사용하는 루틴과 어떤 장단점이 있을까? 둠이맥스의 경우 evil 중심의 키바인딩을 사용하면서 occur에 대한 활용법에 대한 언급이 없다. occur은 빌트인 패키지인 만큼 방법을 익히고 싶다.
@assistant 좋은 질문입니다! 각각의 도구(consult-line, embark, occur)는 목적과 사용 방식에 차이가 있습니다. 아래에 루틴, 장단점, 그리고 doom-emacs(특히 evil 중심 환경)에서의 활용법을 정리해 드립니다.
1. consult-line + embark 루틴
consult-line(SPC s l, 또는M-x consult-line): 현재 버퍼에서 입력한 문자열이 포함된 모든 줄을 실시간 미리보기로 보여줍니다.- 원하는 줄에서
embark-act(C-.)을 실행하면, 그 줄이나 단어에 대해 다양한 액션(복사, 편집, 검색 등)을 선택할 수 있습니다.
장점
- 실시간 미리보기: 입력할 때마다 결과가 바로 갱신됨.
- embark를 통한 강력한 액션: 검색 결과에서 바로 복사, 이동, 편집 등 가능.
- 다양한 컨텍스트 지원: embark는 단어, 심볼 등 다양한 객체에 따라 액션 제공.
단점
- 검색 결과를 한 번에 목록화해서 편집하는 기능은 없음.
- 정규표현식 검색이 제한적(consult-line은 기본적으로 plain string, consult-ripgrep은 regexp 지원).
- Emacs 초보자에게는 embark의 액션 체계가 다소 복잡할 수 있음.
2. occur 루틴
M-x occur또는:occur(evil 명령어로 커맨드 팔레트에서 실행)- 정규표현식 입력 →
*Occur/버퍼에 결과 목록화 - =RET=으로 원하는 줄로 이동, =occur-edit-mode=로 목록에서 직접 편집 가능
장점
- 정규표현식 지원: 복잡한 패턴 검색에 유리.
- 결과 목록화: 한눈에 전체 맥락 파악 및 빠른 이동.
- 목록에서 직접 편집 가능(occur-edit-mode).
- Emacs 기본 내장(빌트인), 별도 패키지 필요 없음.
- evil에서도 기본 명령어로 쉽게 사용 가능.
단점
- 실시간 미리보기 없음(검색 후 결과 확인).
- 검색 결과 내에서 추가 필터링이나 액션은 consult/embark에 비해 제한적.
- UI가 modern 패키지에 비해 투박할 수 있음.
3. Doom Emacs(Evil)에서 occur 활용법
:occur또는 =M-x occur=로 실행(leader 키에 직접 매핑 가능)- 결과 버퍼에서 =RET=으로 점프, =C-c C-e=로 편집 모드 진입
SPC s o등으로 leader key mapping을 추가해서 자주 쓸 수 있음
예시 키바인딩 추가법 (config.el):
(map! :leader
:desc "Occur" "s o" #'occur)요약
- consult-line + embark: 빠른 미리보기, 다양한 액션, modern UI. 하지만 결과 목록화/편집은 약함.
- occur: 정규표현식, 결과 목록화, 편집까지 가능. 빌트인이라 가볍고 evil 환경에서도 쉽게 사용 가능.
- doom-emacs(특히 evil): occur을 leader key에 매핑해서 자주 쓰기 좋음. 복잡한 패턴이나 전체 구조 파악에 occur을, 빠른 탐색/액션에는 consult-line+embark를 쓰는 식으로 병행 활용 추천.
궁금한 점 있으면 더 물어보세요!
Comments